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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔石炫 中级黑马   /  2014-9-25 03:09  /  970 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何创建一个可用的对象?大致有以下2个步骤:
<1>调用类方法alloc,分配可用的存储空间
<2>调用对象方法init ,对用分配好的存储空间将对象初始化,例如给各成员变量赋初值
假如有一个Person类,其有2个成员变量:int _agedouble weight,创建一个Person类的对象,语法为:
Person *p = [Person new];
其实Person类中的类方法new的实现过程就是上述的2个步骤,以上代码相当于:
Person *p = [[Person alloc] init];
当我们期望对象创建时,成员变量的值为固定值,则需要重写对象方法init
参考以下代码:
  1. @interface Person : NSObject
  2. @property int age;
  3. @end

  4. @implementation Person
  5. - (id)init
  6. {
  7.         if(self = [super init]) //<1>调用父类的初始化方法,将初始化后返回的对象赋值给self
  8. {
  9.         _age = 1; // <2>如果self的值不为nil,则将成员变量初始化为我们期望的值
  10. }
  11. return self; // <3>将初始化完毕的对象返回
  12. }
  13. @end

  14. int main()
  15. {
  16.         Person *p = [[Person alloc] init];
  17.         NSLog(@”创建的Person对象p的成员变量_age的值为:%d” , [p age]);

  18.         return 0;
  19. }
复制代码

以上代码,每次创建出来的Person对象,其成员变量_age都被初始化为1
重写init方法的3步骤:
<1>调用父类的init方法对继承部分进行初始化
<2>对自身特有的部分进行初始化
<3>返回一个id类型的对象,即returnself,将自身返回。

1 个回复

倒序浏览
{:2_30:}{:2_30:}{:2_30:}{:2_30:}{:2_30:}{:2_30:}{:2_30:}{:2_30:}{:2_30:}{:2_30:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马