码迷,mamicode.com
首页 > 其他好文 > 详细

Objective-C - 构造方法

时间:2015-04-19 08:54:53      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:objective   构造方法   重写构造方法   

构造方法



// 构造方法:用来初始化对象的方法,是个对象方法,-开头
// 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
/*
 重写构造方法的注意点
1.先调用父类的构造方法([super init])
2.再进行子类内部成员变量的初始化
 */
int main()
{
    // Person *p = [Person new];
    /*
     完整地创建一个可用的对象
     1.分配存储空间  +alloc
     2.初始化 -init
     */

    // 1.调用+alloc分配存储空间
    // Person *p1 = [Person alloc];
    // 2.调用-init进行初始化
    // Person *p2 = [p1 init];

//    // 调用-init进行初始化
//    Person *p3 = [Person new];
//    
//    
//    // 每个Person对象创建出来,他的_age都是10
//    

    Person *p4 = [[Person alloc] init];


    Student *stu = [[Student alloc] init];

    NSLog(@"------");

    return 0;
}

人类

@interface Person : NSObject
@property int age;
@end
#import "Person.h"

@implementation Person


 //重写-init方法
- (id)init
{
    // 1.一定要调用回super的init方法:初始化父类中声明的一些成员变量和其他属性
    self = [super init]; // 当前对象 self


    // 2.如果对象初始化成功,才有必要进行接下来的初始化
    if (self != nil)
    { // 初始化成功
        _age = 10;
    }

    // 3.返回一个已经初始化完毕的对象
    return self;
}

- (id)init
{
    if ( self = [super init] )
    { // 初始化成功
        _age = 10;
    }

    // 3.返回一个已经初始化完毕的对象
    return self;
}

@end

学生类

#import "Person.h"

@interface Student : Person
@property int no;
@end
#import "Student.h"

@implementation Student

// 学生对象初始化完毕后,年龄就是10,学号就是1

- (id)init
{
    if ( self = [super init] )
    {
        _no = 1;
    }
    return self;
}

@end

Objective-C - 构造方法

标签:objective   构造方法   重写构造方法   

原文地址:http://blog.csdn.net/wangzi11322/article/details/45126275

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!