黑马程序员技术交流社区

标题: 类的本质 [打印本页]

作者: m573555543    时间: 2014-5-4 16:35
标题: 类的本质
本帖最后由 m573555543 于 2014-5-5 12:16 编辑

Person *p = [[Person alloc ] init];
可以这么理解么?


[[Person alloc ] init]
中的  Person  是一个对象 ,只不过是一个class  类型的对象


Person *p = [[Person alloc ] init];
先利用class 创建一个Person  类对象

在利用 Person 类对象 创建  Person *p 中的Person 类型的对象  ?


主要就是想问  在利用 Person 类对象 创建  Person *p 中的Person 类型的对象  ?   这一句我理解的对不对


作者: 葬花桥    时间: 2014-5-4 17:23
本帖最后由 葬花桥 于 2014-5-4 17:26 编辑

楼主的理解好像有点问题啊,Person应该是一个类而不是对象吧?[[Person alloc] init]这一句应该是实例化一个Person类的对象,并初始化,这样在内存中就有了一个Person类的对象,而且成员变量都初始化了,这里,alloc应该是类方法,init应该是对象方法,一个创建对象,一个初始化对象。
Person *p = [[Person alloc] init]这一句的话,是用Person类型的指针指向,Person实例化的对象,不然的话实例的对象就是匿名对象,也可以写成这样
Person *p = [Person alloc];
[p init];
作者: m573555543    时间: 2014-5-4 17:40
葬花桥 发表于 2014-5-4 17:23
楼主的理解好像有点问题啊,Person应该是一个类而不是对象吧?[ init]这一句应该是实例化一个Person类的对 ...

在类的本质这个里面是这么说的吧。

作者: 郑亚鸽    时间: 2014-5-4 21:28
Person *p 的意思是p是一个Person类型的指针

[[Person alloc] init]  为创建的Person类对象分配一段内存地址并且初始化

+alloc是一个类方法,用来给对象分配内存

-init是实例方法用来完成初始化


Person *p = [[Person alloc] init];  //定义一个Person类型的指针p指向Person类的对象内存中的某一处;
作者: ww384661784    时间: 2014-5-5 21:19
CLass后面跟的是类吧,对象是New出来的吧!!!!!!!!!!!!




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