• OC-重写构造方法


    from : http://www.cnblogs.com/wendingding/p/3706883.html

    重写构造方法的目的是:让对象方法一创建出来,成员变量就会有一些固定的值。

    示例

    //
    //  Person.h
    //  WDDGouzaofangfaTest
    //
    //  Created by LiuChanghong on 15/9/25.
    //  Copyright © 2015年 LiuChanghong. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    @property int age;
    
    @end
    Person.h
    //
    //  Person.m
    //  WDDGouzaofangfaTest
    //
    //  Created by LiuChanghong on 15/9/25.
    //  Copyright © 2015年 LiuChanghong. All rights reserved.
    //
    
    #import "Person.h"
    
    @implementation Person
    
    
    //重写构造方法
    - (instancetype)init
    {
        //初始化对象,以拥有父类成员变量
        self = [super init];
        if (self) {
            //初始化对象自有成员变量
            _age = 10;
        }
        //返回一个已经初始化完成的对象
        return self;
    }
    
    @end
    Person.m
    //
    //  Student.h
    //  WDDGouzaofangfaTest
    //
    //  Created by LiuChanghong on 15/9/25.
    //  Copyright © 2015年 LiuChanghong. All rights reserved.
    //
    
    #import "Person.h"
    
    @interface Student : Person
    
    @property int number;
    
    @end
    Student.h
    //
    //  Student.m
    //  WDDGouzaofangfaTest
    //
    //  Created by LiuChanghong on 15/9/25.
    //  Copyright © 2015年 LiuChanghong. All rights reserved.
    //
    
    #import "Student.h"
    
    @implementation Student
    
    //重写构造方法
    - (instancetype)init
    {
        //初始化对象,以拥有父类(person)的成员变量,包括age
        self = [super init];
        if (self) {
            _number = 10010;
        }
        return self;
    }
    
    @end
    Student.m

    测试主程序

    //
    //  main.m
    //  WDDGouzaofangfaTest
    //
    //  Created by LiuChanghong on 15/9/25.
    //  Copyright © 2015年 LiuChanghong. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Student.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            Student *student = [Student new];//等同于[[Student alloc]init]
            NSLog(@"学生的年龄为%d岁,学号为%d",student.age,student.number);
            
        }
        return 0;
    }
    测试主程序

    输出结果

  • 相关阅读:
    常用的Javascript设计模式
    jQuery动画高级用法——详解animation中的.queue()函数
    区分苹果Safari浏览器
    自定义 placeholder 文本颜色
    Three.js资源
    动态添加样式表规则
    GitHub 上一份很受欢迎的前端代码优化指南
    [转载]盒模型display:-webkit-box;的使用
    CSS3 Background-size
    Ubuntu上安装torque过程
  • 原文地址:https://www.cnblogs.com/liuchanghong/p/4837898.html
Copyright © 2020-2023  润新知