黑马程序员技术交流社区
标题:
self = [super init]; 这里使用self,是为了让当前对象指向父类吗?不太理解
[打印本页]
作者:
菜鸟八哥
时间:
2015-1-13 22:07
标题:
self = [super init]; 这里使用self,是为了让当前对象指向父类吗?不太理解
#import<Foundation/Foundation.h>
@interface Person :NSObject
@property int age;
@end
@implementation Person
//重写-init方法的作用:让成员变量一创建出来就是什么值,而不是原先父类中默认的0。
//该方法不需要再声明,应为已经在父类NSObject类的声明中声明过了,这里只需要做下重写就可以
重写构造方法的注意点
1.先调用父类的构造方法([super init])
2.再进行当前对象内部成员变量的初始化
/*
-(id)init //注意:id类型,表示任何对象都可以调用init,所以返回的类型是不确定的,所以使用id;
{
//重写构造方法的条件:
//1.一定要调用super的init方法:初始化父类中声明的一些成员变量和其它属性
//[super init]有时候返回的对象不一定跟self一样,为了保证代码严谨,把返回值赋值给self
//解释:因为父类的所有东西都被子类继承,所以要想初始化Person的成员变量,就必须把父类的成员变量初始化。
self = [super init];
//2如果对象初始化成功,才有必要进行当前成员变量的初始化
if(self !=nil)
{
//当前初始化成功;
_age = 10;
}
作者:
bun
时间:
2015-1-14 08:45
同求,相同的疑惑
作者:
zyp115
时间:
2015-1-14 09:04
将用父类对象方法init后得到的初始化对象赋值给当前对象,我是这么理解的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2