黑马程序员技术交流社区

标题: 求助:请帮我讲解一下,类对象 [打印本页]

作者: smilezsm    时间: 2014-9-20 21:09
标题: 求助:请帮我讲解一下,类对象

在讲解类对象的使用中,图中画红线框住的老师说这样创建出了person类型的对象p2,但我不理解的是蓝色箭头:[c new]难道不是等于[person new]这样不是就可以创建出person类型的对象了吗,还要后面的init干嘛?要再初始化一遍吗?调用new 方法不是就已经有初始化了吗

作者: Jr_711    时间: 2014-9-20 21:47
应该是写错了
作者: smilezsm    时间: 2014-9-20 21:51
Jr_711 发表于 2014-9-20 21:47
应该是写错了

嗯我也这么认为啊
作者: AngleMGG    时间: 2014-9-20 23:21
你是理解是对的,后面的init就是初始化的。整句代码就是创建p2对象的同时初始化,这个初始化只是为了验证p2是否创建成功,视频后面就看到打开p2了啊,去认真再看一次视频就明白了。
作者: smilezsm    时间: 2014-9-20 23:51
AngleMGG 发表于 2014-9-20 23:21
你是理解是对的,后面的init就是初始化的。整句代码就是创建p2对象的同时初始化,这个初始化只是为了验证p2 ...

嗯谢谢   
作者: cjfire    时间: 2014-9-21 08:23
我觉得可能是老师写错了,但是从代码的执行上来看,这句话并不会报错,new的功能等于alloc和init嵌套,而init的官方文档里面解释,它会直接return self,所以,这样等于[[[Persion alloc]init]init]调用了两次return self只是代码上存在冗余,并不算错。
作者: 超越自己    时间: 2014-9-21 08:51
应该是老师的失误,话说楼主你进度很快啊!
作者: SailY    时间: 2014-9-21 10:19
看的真快!
作者: AngleMGG    时间: 2014-9-22 00:05
cjfire 发表于 2014-9-21 08:23
我觉得可能是老师写错了,但是从代码的执行上来看,这句话并不会报错,new的功能等于alloc和init嵌套,而in ...

后来发现是这么回事:o




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