黑马程序员技术交流社区

标题: RIDP Note VIIII——构造方法 [打印本页]

作者: RIDP    时间: 2015-9-21 23:04
标题: RIDP Note VIIII——构造方法
         构造方法:用来初始化对象的方法,是个对象方法,-号开头
         
         
         init方法就是构造方法,是用来初始化对象的方法,这是一个对象方法,以-号开头
         该方法返回的是调用init方法的对象
         
         这里学习的是如何重写构造方法,让对象创建成功后就存在初始值

        person *p = [[person alloc]init];
//        我们来实现一个需求,我们创建完成一个person对象之后,我们需要让他的年龄默认为10岁

//        现在自动初始化年龄为0

——————————————
person.h
——————————————
@interface person : NSObject
@property int age;
@property NSString *name;
-(void)run;

@end
——————————————
person.m
——————————————
@implementation person
-(void)run{
    NSLog(@"人在狂奔");
}
-(void)eat{//person的私有方法
    NSLog(@"人在狂吃");
}
-(instancetype)init{
//    先调用一下父类的init让他完成最初的自动初始化
    self = [super init];
//    做判断,若self不为空(说明返回了地址而不是NULL)
//    这一步主要是判断初始化是不是成功了,如果成功,执行代码
    if (self) {
        _age = 10;//此处就是需要设置的变量的默认值,这里是说新对象默认的age=10;
    }
    return self;
}

@end
——————————————
现在当我们重新创建一个新的person对象的时候,他便会在对象初始化时自动帮助我们将其age属性初始化为10




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