OC基础知识 -- 基本行为方法

基本行为方法

1.自定义初始化方法

每个类都需要进行初始化,如果对父类自定义初始化方法不满意,可以进行重写:

- (instancetype)initWithSystem:(NSString *)system brand:(NSString *)brand color:(NSString *)color{
    _system = system;
    _brand = brand;
    _color = color;
    return self;
}

2. 便利构造器

便利构造器是一种类方法:

+ (instancetype)mobilePhoneWithSystem:(NSString *)system brand:(NSString *)brand color:(NSString *)color{
    MobilePhone *mobilePhone = [[MobilePhone alloc] initWithSystem:system brand:brand color:color];
    return mobilePhone;
}

2.getter和setter方法

受保护的实例变量不能在main.m中赋值 但是可以通过自定义初始化方法进行赋值

要获取赋值后的对象的某个实例变量可以用getter方法

- (NSString *)system{
    return _system;
}

对赋值后的对象的某个实例变量进行重新赋值可以用setter方法

- (void)setSystem:(NSString *)system {
    _system = system;
}

每个实例变量都应该有一对getter和setter方法

3.全面描述

- (NSString *)description{
    NSString *str = [NSString stringWithFormat:@"系统:%@ 品牌:%@ 颜色:%@",_system,_brand,_color];
    return str;
}

进行此方法实现后,此类创建的对象在进行NSLog打印时可以直接用对象名

MobilePhone *myPhone = [[MobilePhone alloc] initWithSystem:@"iOS" brand:@"apple" color:@"黑色"];
NSLog(@"%@",myPhone);

*复合

有时候一个类将另一个类的对象作为自己的实例变量,这种情况叫做复合

复合需要在各自的接口文件的@interface 前面添加@class 类名 表面这个类是可作为自己的一个实例变量

在给存在复合变量的两个类进行自定义初始化的时候 需要考虑创建对象的先后关系,以适当去掉实例变量;在

进行description的时候需要注意循环调用 应该换成getter方法来进行描述打印 (这个方法应该在另一个类中

进行创建)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值