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
self.brand = brand;
self.model = mode;
self.color = @"red";
-(id)initWithBrand:(NSString *)brand model:(NSString *) mode color:(NSString *)color
if (self = [self initWithBrand:brand model:mode])
self.color = color;
main.m
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