[黑马程序员][OC]构造方法

------Java培训、Android培训、iOS培训、.Net培训期待与您交流! -------

构造方法:

用来初始化对象的方法,是一个对象的方法。

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

重写构造方法的目的:

为了让对象创建出来成员变量就有一些固定值

代码示例:

Person类:

#import <Foundation/Foundation.h>

@interface Person : NSObject
@property int age;

@end

@implementation Person

- (id)init
{
    if ( self = [super init] )
    { 
        _age = 10;
    }

    return self;
}

@end

完整创建一个Person对象:

Person *p = [[p alloc] init];
 
NSLog(@"age is %i", p.age);

[p release];

重写构造方法的注意点:

1、先调用父类的构造方法[super init]

2、再进行子类内部成员变量的初始化


init方法的重写:

- (id)init
{
    if (self = [super init])
    {
        _age = 10;
    }

    return self;
}

自定义构造方法:

1、一定是对象方法,一定以减号 - 开头

2、返回值一般是id类型

3、方法名一般以initWith开头


接下来,自定义一个构造方法,可以传入一个age参数来初始化Person对象

Person类(自定义构造方法):


#import <Foundation/Foundation.h>

@interface Person : NSObject
@property int age;

@end

@implementation Person

- (id)init
{
    if ( self = [super init] )
    { 
        _age = 10;
    }

    return self;
}

- (id)initWithAge:(int)age 
{
    if ( self = [super init] ) 
    {
        _age = age;
    }
    return self;
}

@end

调用自定义构造方法:

Person *p = [[p alloc] initWithAge:20]; // 调用了构造方法initWithAge:,并传入20作为参数
 
NSLog(@"age is %i", p.age);

[p release];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值