黑马程序员技术交流社区

标题: 构造函数解析从类对象定义开始 [打印本页]

作者: 碧空海    时间: 2015-3-18 13:49
标题: 构造函数解析从类对象定义开始
Person *p = [Person new];
A.句子解析;
1.完整的创建了一个可用对象
2.分配存储空间,用的是内部的类方法+alloc
3.初始化,用的是对象方法。-init

B.过程剖析
1.首先调用+alloc类方法分配空间,Person *p1 = [Person alloc];
2.接下来用-init初始化;Person *p= [p1 init];

C.以后创建类对象就用这样的
Person *p = [[Person alloc] init];代替Person *p = [Person new];
alloc用于分配空间。init用于初始化

D.在实现中(@implemention 类名)重写-init方法。
-        (id)init
{
//一定要调用super的init方法:初始化父类声明中的一些成员变量和其他属性。
//[super init];(会直接调用父类) 初始化当前对象 用的就是self(有的时候也不相同)。
//具体可以这样写;
Self = [super init];
If (self != nil)
{
//初始化成功进入
_age = 10;
}
//返回一个已经初始化的对象
return self;
}
整体可以这样简写;
-        (id)init
{
If ( self = [super init] )
{
-age = 10;
}
return  self;
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2