zoukankan      html  css  js  c++  java
  • 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;
    }
    测试主程序

    输出结果

  • 相关阅读:
    【判环】Perpetuum Mobile
    【计算几何】Water Testing
    【动态规划】Überwatch
    【规律】Cunning Friends
    【转载】【最短路Floyd+KM 最佳匹配】hdu 2448 Mining Station on the Sea
    【动态规划】Concerts
    【计算几何】The Queen’s Super-circular Patio
    【规律】Farey Sums
    【规律】Growing Rectangular Spiral
    Mancala II
  • 原文地址:https://www.cnblogs.com/liuchanghong/p/4837898.html
Copyright © 2011-2022 走看看