<1>id类型
1. 是一个万能指针,可以指向/操作任何一个OC对象
2. id类型的变量本身就是一个指针类型
<2>构造方法
1. new方法的实现实际上是分为两步的,1.分配存储空间,调用+alloc方法;2.初始化,调用-init方法
1>调用+alloc方法
Person *p1 = [Person alloc];
2>Person *p2 = [p1 init];
但可以写成下面的一句(以后会经常这样写,中括号套一个中括号,而且new就不常用了)
Person *p = [[Person alloc] init]; // 这个init就是构造方法
构造方法: 用来初始化对象的方法,是一个对象方法
(在需要的类中)重写-init方法: - (id)init**** //有固定的格式,如下:
// 1.一定要先调用回super的init方法:初始化父类中声明的一些成员变量和其他属性
self = [super init]; // 当前对象 self
// 2.如果初始化成功,才有必要进行接下来的初始化
if(self != nil){ // 初始化成功
_age = 10;
}
// 3.返回一个已经初始化完毕的对象
return self;
1. 是一个万能指针,可以指向/操作任何一个OC对象
2. id类型的变量本身就是一个指针类型
<2>构造方法
1. new方法的实现实际上是分为两步的,1.分配存储空间,调用+alloc方法;2.初始化,调用-init方法
1>调用+alloc方法
Person *p1 = [Person alloc];
2>Person *p2 = [p1 init];
但可以写成下面的一句(以后会经常这样写,中括号套一个中括号,而且new就不常用了)
Person *p = [[Person alloc] init]; // 这个init就是构造方法
构造方法: 用来初始化对象的方法,是一个对象方法
(在需要的类中)重写-init方法: - (id)init**** //有固定的格式,如下:
// 1.一定要先调用回super的init方法:初始化父类中声明的一些成员变量和其他属性
self = [super init]; // 当前对象 self
// 2.如果初始化成功,才有必要进行接下来的初始化
if(self != nil){ // 初始化成功
_age = 10;
}
// 3.返回一个已经初始化完毕的对象
return self;