天天看点

IOS之学习笔记九(对象的初始化)

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