黑马程序员—OC—面向对象(二)

来源:互联网 发布:未提交行1中的数据 编辑:程序博客网 时间:2024/05/21 09:58
                                                              ------- android培训、ios培训、期待与您交流! ----------
*** 和面向过程的区别 ***

面向对象和面向过程是解决问题的不同思想 (用哪种思想都可以解决问题)。

面向过程: 思考解决这个问题需要哪些步骤。

面向对象: 思考解决这个问题需要哪些对象。在面向对象的世界中万物皆对象 (一切物体都可以是对象),找到需要的对象和这个对象需要具有的功能。


面向过程考虑的是步骤, 完成这个任务可以拆分为哪些步骤把每个步骤写成一个方法。

面向对象主要思考的是需要哪些对象(物体), 并使用对象的功能。

境界万物皆对象。


*** 类和对象的关系 ***

面向对象中有2个非常重要的概念:类和对象。

设计类只需要关注三部分:

事物名称(类名):人(person) 规范: 首字母大写通常使用驼峰来分隔单词。

属性:身高(height)、年龄(age)

行为(功能):跑(run)、打架(fight)


根据应用的需求创建类再通过类根据需求创建对象再调用对象的功能。


*** 类的创建和使用 ***

一、 类的声明:

格式:

类的声明以@interface开头, @end结尾。

类的声明中要说明属性和声明行为(成员变量和方法声明)。

属性:

属性声明在大括号中。

属性也叫做成员变量或者实例变量(每个实例都有自己的属性值)。

对象创建时, 所有的成员变量默认初始化为0. 只能声明成员变量不能在大括号里给它们赋初值。 只写类型和变量名也不能用static等等修饰。

NSObject可以让声明的类具备创建对象的能力。

@public可以让外部的指针直接访问对象的成员变量。

方法:

方法声明写在大括号外面。

OC中方法不能写成 void update(); 要遵循下面的要求:

1> 如果是对象调用的方法用减号标记如果是类调用的方法用加号标记。

2> 数据类型用()括起来。

3> 接收的参数不能用(), 因为在OC中小括号就是用来括数据类型的。 参数要用冒号标记, 有几个参数就写几个冒号, 没有参数就不写。

就算方法很短也不能写方法的实现。

方法不能使用static修饰, static是修饰C语言的函数的, 方法和函数不同。

#import <Foundation/Foundation.h>@interface Person : NSObject{    @public    int age;    float weight;  }- (void)walk;@end//类的实现@implementation Person//实现interface中声明的方法- (void)walk {    NSLog(@"%d岁,%f的人走了一段路",age,weight);}@endint main(){   Person *p = [Person new];            p->age  = 20;    p->weight = 50.0;    [p walk];            Person *p2 = [Person new];        p2->age = 40;    p2->weight = 90.0;    [p2 walk];                        }



二、 类的实现:

1、 类的实现要以@implementation开头@end结尾。

2、 类的实现就是用来实现类的方法。

3、 方法的实现先把方法声明抄过来再加个大括号在里面写实现代码。

4、 方法内部如果要访问当前对象的成员变量直接写变量名字就可以。


三、 类的使用:

1、 OC中执行一个行为要使用中括号的格式: [行为执行者 行为名称], 即告诉OC让那个执行者去执行那个行为。

2、 OC中操作对象只能通过指针来操作不能直接操作对象。

3、 类的声明必须放在main之前跟函数一样因为编译是从上往下的。



------- android培训、ios培训、期待与您交流! ----------

详细请查看:www.itheima.com

0 0