您的位置:首页 > 移动开发 > Objective-C

Object_C初始化方法, 遍历构造器

2015-03-02 17:34 176 查看
//版本1

//- (id)init

//{

// work = @"工作";

// return self;

//}

//

// //版本2:调用父类的init方法,为父类的实例变量赋初值

//- (id)init

//{

// [super init];

// work = @"工作";

// return self;

//}

//

// //版本3:出于安全考虑,判断父类是否初始化成功,如果父类初始化成功,,在初始子类

//- (id)init

//{

// self = [super init];

// if (self != nil) {

// work = @"工作";

// }

// return self;

//}

//版本4 代码优化

//- (id)init

//{

// self = [super init];

// if (self) {

// work = @"工作";

// }

// return self;

//}

//版本5:优化代码

//- (id)init

//{

// if (self = [super init]) {

// work = @"工作";

// }

// return self;

//}

//初始化方法

//1.返回值类型为id

//2.方法名一般以init开头

//3.

//重写系统方法

- (id)init

{

self = [super init];//调用父类初始化

if (self) { //判断父类是否初始化成功

work = @"工作";//给实例变量赋初值

}

return self;//最终返回self

}

@interface Student : NSObject

{

NSString *name;

NSInteger number;

CGFloat score;

}

//自定义初始化方法

//解决的问题:把初始化和实例变量的赋值,结合在一起

//1.实例方法(-)

//2.返回值类型为id

//3.方法以init开头

- (id)initWithName:(NSString *)aName number:(NSInteger)aNumber score:(CGFloat)aScore;

- (id)initWithName:(NSString *)aName;

//便利构造器

//解决问题:把对象的创建和实例变量的赋值,结合在一起

//1.类方法(+)

//2.返回值类型为当前类(Student *)

//3.方法以当前类名开头(student)

+ (Student *)studentWithName:(NSString *)aName number:(NSInteger)aNumber score:(CGFloat)aScore;

+ (Student *)studentWithName:(NSString *)aName number:(NSInteger)aNumber score:(CGFloat)aScore

{

//1

// Student *student = [[Student alloc] init];

// [student setName:aName];

// [student setNumber:aNumber];

// [student setScore:aScore];

// return student;

//2

// Student *student = [[Student alloc] initWithName:aName number:aNumber score:aScore];

// return student;

//3

return [[Student alloc] initWithName:aName number:aNumber score:aScore];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: