oc构造方法

OCinit开头的方法, 我们称之为构造方法

     构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值


int main(int argc, const char * argv[]) {

    /*

     OCinit开头的方法, 我们称之为构造方法

     构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值

     */

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

//    p.age = 6;

    NSLog(@"%i", p.age);

    

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

//    p2.age = 6;

    NSLog(@"%i", p2.age);

    

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

//    p3.age = 6;

    NSLog(@"%i", p3.age);

    

    return 0;

}

//

//  Person.m

//  day14

//

//  Created by xiaomage on 15/6/23.

//  Copyright (c) 2015 xiaomage. All rights reserved.

//



#import "Person.h"


@implementation Person


/*

// 重写init方法, init方法中初始化成员变量

// 注意: 重写init方法必须按照苹果规定的格式重写, 如果不按照规定会引发一些未知的错误

// 1.必须先初始化父类, 再初始化子类

// 2.必须判断父类是否初始化成功, 只有父类初始化成功才能继续初始化子类

// 3.返回当前对象的地址

- (instancetype)init

{

    // 1.初始化父类

    // 只要父类初始化成功 , 就会返回对应的地址, 如果初始化失败, 就会返回nil

    // nil == 0 == == 没有初始化成功

    self = [super init];

    // 2.判断父类是否初始化成功

    if (self != nil) {

        // 3.初始化子类

        // 设置属性的值

        _age = 6;

        

    }

    // 4.返回地址

    return self;

}

 */


/*

- (instancetype)init

{

    self = [super init]; // self == nil == 0

    if (self) {

        // 初始化子类

        _age = 6;

    }

    return self;

}

 */

- (instancetype)init

{

//    self = [super init];

    // 注意: 不要把 = 号写为 ==

    // 一定要将[super init]的返回值赋值给self

    if (self = [super init]) {

        // 初始化子类

        _age = 6;

    }

    return self;

}


@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值