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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© RIDP 中级黑马   /  2015-9-21 23:04  /  880 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

         构造方法:用来初始化对象的方法,是个对象方法,-号开头
         
         
         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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马