1、构造方法概念
用来初始化对象的方法,是个对象方法,- 开头,init 就是构造方法。
Person *p = [Person new];
new方法做了两件事(完整地创建一个可用的对象)
1> 分配存储空间 +alloc
2> 初始化(new方法默认初始化为0) -init
本质上:new方法调用了2个方法 +allloc(类方法) 和 - init(对象方法)
(1) 调用+alloc分配存储空间
Person *p1 = [Person alloc];
(2) 调用-init进行初始化
Person *p2 = [p1 init];
写成一句 Person *p3 = [[Person alloc] init];
以后我们创建对象都用alloc 和 init,例如: Person *p = [[Person alloc] init];
2、重写init方法
重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
重写构造方法的注意点:
1>先调用父类的构造方法([super init])
2>再进行子类内部成员变量的初始化
1 - (id)init 2 { 3 if(self = [super init]) 4 { 5 _age = 1; 6 } 7 return self; 8 }