初始化-便利构造器(代码)

## main ##
#warning 初始化-便利构造器
#if 1

    //创建对象
    Cake *c = [[Cake alloc]init];
    NSLog(@"%@ %@ %@ ",[c hp],[c defense],[c attack]);

    Cake *c1 = [[Cake alloc]init];
    c1.hp = @"11";
    NSLog(@"%@ %@ %@ ",[c1 hp],[c1 defense],[c1 attack]);

    Cake *c2 = [[Cake alloc]initWithHp:@"111" defense:@"222" attack:@"333"];
    NSLog(@"%@ %@ %@",[c2 hp], [c2 defense], [c2 attack]);

    //便利构造器
    Cake *c3 = [Cake cake];
    NSLog(@"%@ %@ %@",[c3 hp], [c3 defense], [c3 attack]);

    Cake *c4 = [Cake cakeWithHp:@"444" defense:@"555" attack:@"666"];
    NSLog(@"%@ %@ %@",[c4 hp], [c4 defense], [c4 attack]);

#endif

 ## .h 文件 ##   
#import <Foundation/Foundation.h>

@interface Cake : NSObject

#warning 初始化-便利构造器

{
    NSString *_hp;   //血量
    NSString *_defense;   //防御
    NSString *_attack;   //攻击力
}

//setter&getter

-(void)setHp:(NSString *)hp;
-(NSString *)hp;

-(void)setDefense:(NSString *)defense;
-(NSString *)defense;

-(void)setAttack:(NSString *)attack;
-(NSString *)attack;

//自定义初始化
-(instancetype)initWithHp:(NSString *)hp defense:(NSString *)defense attack:(NSString *)attack;

//便利构造器

//不带参数
+(instancetype)cake;

//带参数
//1. 类方法
//2. 以小写的类名开始
+(instancetype)cakeWithHp:(NSString *)hp defense:(NSString *)defense attack:(NSString *)attack;
@end

 ## .m 文件 ##   
#import "Cake.h"
@implementation Cake

//初始化方法
//instancetype/id 泛型指针(任意对象)
-(instancetype)init
{
    //1. 调用父类的初始化 处理从父类继承来的成员变量
    self = [super init];

    //2. 判断初始化是否成功
    if (self) {
        //3. 初始化当前类内容
        _hp = @"100";
        _defense = @"100";
        _attack = @"100";
    }
    //4. 初始化结束 返回对象自己
    return self;
}

-(instancetype)initWithHp:(NSString *)hp defense:(NSString *)defense attack:(NSString *)attack
{
    self = [super init];
    if (self) {
        //初始化
        _hp = hp;
        _defense = defense;
        _attack = attack;

        //消息语法
        [self setHp:hp];
        [self setDefense:defense];
        [self setAttack:attack];

        //点语法
        self.hp = hp;
        self.defense = defense;
        self.attack = attack;


    }
    return self;
}

//便利构造器
+(instancetype)cake
{
    Cake *c = [[Cake alloc]init];
    return c;
}

+(instancetype)cakeWithHp:(NSString *)hp defense:(NSString *)defense attack:(NSString *)attack
{
    Cake *c1 = [[Cake alloc]initWithHp:hp defense:defense attack:attack];
    return c1;
}

-(void)setHp:(NSString *)hp
{
    _hp = hp;
}
-(NSString *)hp
{
    return _hp;
}

-(void)setDefense:(NSString *)defense
{
    _defense = defense;
}
-(NSString *)defense
{
    return _defense;
}

-(void)setAttack:(NSString *)attack
{
    _attack = attack;
}
-(NSString *)attack
{
    return _attack;
}

@end














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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值