zoukankan      html  css  js  c++  java
  • Object_C初始化方法, 遍历构造器

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

     
  • 相关阅读:
    动态展示图片
    vue 字符串长度控制显示的字数超出显示省略号
    ivew-admin 校验 自定义验证表单多层嵌套
    ivew 【provide/inject] 页面刷新实现reload
    vue-ivew input 框 回车搜索功能
    php中二维数组如何使用
    页面图片按钮案例
    html页面插入flash代码
    js动态设置输入框字体/颜色
    php如何判断是手机访问还是电脑访问
  • 原文地址:https://www.cnblogs.com/tian-sun/p/4309360.html
Copyright © 2011-2022 走看看