黑马程序员技术交流社区
标题:
关于 init 的一些问题
[打印本页]
作者:
wodeheimalife
时间:
2015-4-29 08:58
标题:
关于 init 的一些问题
下面的两行代码,在内存中是什么区别?
1: Person * p = [[Person alloc ] initWithAge: 20];
2: Person * p = [[Person alloc ] init ];
p.age = 20;
最后出来的结果是一样的,可是这两种赋值操作区别在哪?
作者:
冰儿
时间:
2015-4-29 21:32
Person * p = [[Person alloc ] initWithAge: 20];
这个是有参的初始化
Person * p = [[Person alloc ] init ];
这个是无参的初始化
个人认为有参的初始化方便使用
作者:
darewolf
时间:
2015-4-29 21:37
Person *p = [[Person alloc] initWithAge:20];在类实现中,要自己重新实现init构造方法,使创建的对象年龄直接就是20
作者:
shenxian88
时间:
2015-4-29 21:39
第一个是先重写init方法然后传入age参数,
第二个是创建好对象以后,对象通过调用age的set方法进行初始化
作者:
pangang
时间:
2015-4-30 07:49
我觉得一样的,第一种写的比较多
作者:
星空眼泪
时间:
2015-4-30 09:28
同意楼上的,我个人也感觉没有什么差别,还没有学到内存管理那块,是不是在内存分配会有什么不同的
作者:
lyricdon
时间:
2015-4-30 09:45
第一个是带参数初始化,第二个是初始化再将参数带入,
就好比 int a=1 ;和 int a; a=1 ; 本质上没有区别
作者:
shuizhuqing
时间:
2015-5-1 11:17
有参初始化内部还是调用的无參后,赋值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2