黑马程序员技术交流社区

标题: 【大家来帮帮忙】关于构造方法的疑问 [打印本页]

作者: 彈指っ紅顏老    时间: 2014-12-2 23:47
标题: 【大家来帮帮忙】关于构造方法的疑问
看完构造方法有点疑问,重写构造方法那里
  1. - (id)init
  2. {
  3.     if ( self = [super init] )
  4.     {
  5.         _no = 1;
  6.     }
  7.     return self;
  8. }
复制代码

重写时需要先用父类的init初始化,可是这个判断self也就是[super init]是否为零是什么意思?看看对象是不是空吗?还是看看成员变量是不是0?如果是看成员变量的话,不是[Person new]==[[Person alloc] init]吗?用new方法初始化的对象的成员变量就是0啊!有没有大神来指教一下?
作者: weizhang00    时间: 2014-12-2 23:53
这个意思是,如果非零就说明该对象初始化成功了,可以开始操作成员变量了
不这么写,无非是如果没初始化成功,你白写里面的代码

作者: 彈指っ紅顏老    时间: 2014-12-3 00:25
weizhang00 发表于 2014-12-2 23:53
这个意思是,如果非零就说明该对象初始化成功了,可以开始操作成员变量了
不这么写,无非是如果没初始化成 ...

那究竟是对象非零还是成员变量非零啊?
作者: weizhang00    时间: 2014-12-3 10:01
彈指っ紅顏老 发表于 2014-12-3 00:25
那究竟是对象非零还是成员变量非零啊?

self就是对象哦,你见过成员变量能用self?




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