黑马程序员技术交流社区

标题: 构造方法 [打印本页]

作者: 我是薛明星    时间: 2015-12-23 21:32
标题: 构造方法
构造方法怎么写

作者: 956251361    时间: 2015-12-24 15:20
重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值.

#import "Person.h"

@implementation Person

//当子类把父类的init覆盖了,默认先执行子类的init
- (instancetype)init{

    //
    self = [super init];//先让父类把父类原来做的事情做完

    //判断父类是否初始化成功
    if (self) {
        //此处写子类初始化的内容
        _age = 10;//给_age设置默认值10
    }
    return self;//self指代的是方法的调用者

}

@end

这里设计的几个问题:
1:[super init]的作用
面向对象的体现,先利用父类的init方法为子类实例的父类部分属性初始化
2:self为什么要赋值为[super init]
简单来说是为了防止父类的初始化方法release掉了self指向的空间并重新alloc了一块空间.这时[super init]可能alloc失败,这时就不再执行if中的语句.

1.自定义构造方法规范
(1)一定是对象方法,以减号开头
(2)返回值一般是id类型
(3)方法名一般以initWith开头

2.自定义构造方法的使用注意
(1)自己做自己的事情
(2)父类的方法交给父类的方法去处理,子类的方法处理子类自己的属性.
作者: 我是薛明星    时间: 2015-12-24 20:30
需要掌握构造方法




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