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--vue-Router
    Vue--vue中常用的ECMAScript6语法
    Vue-- vue-preview(图片查看器)的使用步骤:
    Vue--moment时间格式插件安装和使用
    Vue--通过button跳转到其他组件并携带id参数
    css3中的box-sizing属性的使用
    JS-取出字符串中重复次数最多的字符并输出
    JSON.parse()和JSON.stringify()用法
    sql server 获取当前日期前三十天的日期
    SQL SERVER查询本周数据,无数据补0
  • 原文地址:https://www.cnblogs.com/tian-sun/p/4309360.html
Copyright © 2011-2022 走看看