A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© m573555543 中级黑马   /  2014-5-4 16:35  /  1271 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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 类型的对象  ?   这一句我理解的对不对

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

正序浏览
CLass后面跟的是类吧,对象是New出来的吧!!!!!!!!!!!!
回复 使用道具 举报
Person *p 的意思是p是一个Person类型的指针

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

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

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


Person *p = [[Person alloc] init];  //定义一个Person类型的指针p指向Person类的对象内存中的某一处;
回复 使用道具 举报
葬花桥 发表于 2014-5-4 17:23
楼主的理解好像有点问题啊,Person应该是一个类而不是对象吧?[ init]这一句应该是实例化一个Person类的对 ...

在类的本质这个里面是这么说的吧。
回复 使用道具 举报
本帖最后由 葬花桥 于 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];

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马