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