1、oc对象的初始化
[[** alloc] init] 分2步,alloc是开辟内存,分配在堆区,这里java和C++都一样,init是进行初始化。
[** new]和[[** alloc] init]等效,习惯用前面的。
2、对象的初始化常用方法demo
FKCard.h
#ifndef KFCard_h
#define KFCard_h
@interface KFCard : NSObject
@property (nonatomic,copy) NSString *brand;
@property (nonatomic,copy) NSString *model;
@property (nonatomic,copy) NSString *color;
-(id)initWithBrand:(NSString *)brand model:(NSString *) mode;
-(id)initWithBrand:(NSString *)brand model:(NSString *) mode color:(NSString *)color;
-(void)show;
@end
#endif /* KFCard_h */
FKCard.m
#import <Foundation/Foundation.h>
#import "KFCard.h"
@implementation KFCard
-(void)show
{
NSLog(@"car brand is %@,and model is %@,and color is %@",self.brand,self.model,self.color);
}
-(id)init
{
if (self = [super init])
{
self.brand = @"aodi";
self.model = @"Q5";
self.color = @"yellow";
}
return self;
}
-(id)initWithBrand:(NSString *)brand model:(NSString *) mode
{
if (self = [super init])
{
self.brand = brand;
self.model = mode;
self.color = @"red";
}
return self;
}
-(id)initWithBrand:(NSString *)brand model:(NSString *) mode color:(NSString *)color
{
if (self = [self initWithBrand:brand model:mode])
{
self.color = color;
}
return self;
}
@end
main.m
#import "KFCard.h"
int main(int argc,char * argv[]) {
@autoreleasepool {
KFCard *car = [KFCard new];
[car show];
KFCard *car1 = [[KFCard alloc] initWithBrand:@"奔驰" model:@"S200"];
[car1 show];
KFCard *car2 = [[KFCard alloc] initWithBrand:@"奔驰" model:@"S200" color:@"black"];
[car2 show];
}
}
3、运行结果如下
car brand is aodi,and model is Q5,and color is yellow
car brand is 奔驰,and model is S200,and color is red
car brand is 奔驰,and color is black