博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object_C初始化方法, 遍历构造器
阅读量:6444 次
发布时间:2019-06-23

本文共 1673 字,大约阅读时间需要 5 分钟。

//版本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];
}

 

 

 

 

 

 

转载于:https://www.cnblogs.com/tian-sun/p/4309360.html

你可能感兴趣的文章
log4cpp编译安装 Centos
查看>>
NOIP提高组第3题(1995-2018)
查看>>
ORA-12560: TNS:protocol adapter error
查看>>
xfce4最小化安装
查看>>
一个DBA眼中的HBase
查看>>
读书笔记-基于IP的物联网架构技术与应用
查看>>
liferay调用mysql插入中文
查看>>
SVM数字识别
查看>>
spring 配置中 merge的使用
查看>>
5A成绩通过PMP,备考经验总结——姜飞
查看>>
我的友情链接
查看>>
项目三、基于PPTP技术的Linux ×××的构建
查看>>
优秀网站收集
查看>>
数码时×××创者大会花絮新鲜出炉
查看>>
sql语句的经验之谈
查看>>
微笑的国度――泰国
查看>>
windows服务器同步时间
查看>>
我的友情链接
查看>>
Qt下的OpenGL 编程(12)阶段学习总结
查看>>
马哥3-4
查看>>