## 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
初始化-便利构造器(代码)
最新推荐文章于 2020-06-04 22:47:48 发布