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
    {
        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


 


作者:chen.yu
深信服三年半工作经验,目前就职游戏厂商,希望能和大家交流和学习,
微信公众号:编程入门到秃头 或扫描下面二维码
零基础入门进阶人工智能(链接)