面向对象(对象初始化)

面向对象(对象初始化)

为对象分配空间

[类名 alloc];

初始化方法与对象初始化

使用NSObject提供的init方法虽然可以完成初始化,但由于它只是完成最基本的初始化,因此对象的所有成员变量依然为0。
重写init方法,可以加入任意的自定义处理代码对属性执行初始化

例:
在.h文件中定义属性
@property (nonatomic ,copy) NSString * name;
@property (nonatomic ,assign) int age;
@property (nonatomic ,copy) NSString * address;
在.m文件中
//重写init方法
- (id) init{
    //调用父类的init方法执行初始化,将初始化得到的对象赋值给self对象
    //如果self不为nil,则表明父类的init方法初始化成功
    if(self = [super init]){
        //对该对象的_name、_age、_address赋初始值
        self->_name = @"名字";
        self->_age = 500;
        self->_adderss = @"地址";
    }
    return self;
}

便利的初始化方法

例:
在.h文件中定义
@property (nonatomic , copy) NSString * brand;
@property (nonatomic , copy) NSString * model;
@property (nonatomic , copy) NSString * color;
//定义一个 initWithBrand:model:方法,完成自定义初始化
- (id) initWithBrand:(NSString *) brand model:(NSString *) model;
//定义一个initWithBrand:model:color:方法,完成自定义初始化
- (id) initWithBrand:(NSString *) brand model:(NSString *) model color:(NSString *) color;
在.m文件中
//重写init方法,完成自定义初始化
- (id) init{
    //调用父类的init方法执行初始化,将初始化得到的对象赋值给self对象
    //如果self不为nil,则表明父类的init方法初始化成功
    if(self = [super init]){
        //对该对象的_brand、_model、_color赋初始值
        self->_brand = @"奥迪";
        self->_model = @"Q5";
        self->_color = @"黑色";
    }
    return self;
}
//实现initWithBeand:model:方法,完成自定义初始化
- (id) initWithBrand:(NSString *) brand model:(NSString *)model{
    //调用父类的init方法执行初始化,将初始化得到的对象赋值给self对象
    //如果self不为nil,则表明父类的init方法初始化成功
    if(self = [super init]){
        //对该对象的_brand、_model、_color赋初始值
        self->_brand = brand;
        self->_model = model;
        self->_color = @"黑色";
    }
}
//实现initWithBeand:model:color:方法,完成自定义初始化
- (id) initWithBrand:(NSString *) brand model:(NSString *)model color:(NSString *) color{
    //调用本类的initWithBeand:model:方法执行初始化,将初始化得到的对象赋值给self对象
    //如果self不为nil,则表明initWithBeand:model:方法初始化成功
    if(self = [self initWithBrand:brand model:model]){
        //对该对象的_color赋初始值
        self->_color = color;
    }
    return self;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值