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 model is S200, and color is black