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

来源:互联网 发布:乐乎城市青年社区电话 编辑:程序博客网 时间:2024/05/22 15:47

------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];

0 0