IOS之學習筆記九(對象的初始化)
1、oc對象的初始化
[[** alloc] init] 分2步,alloc是開辟內(nèi)存,分配在堆區(qū),這里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、運行結(jié)果如下
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
深信服三年半工作經(jīng)驗,目前就職游戲廠商,希望能和大家交流和學習,
微信公眾號:編程入門到禿頭 或掃描下面二維碼
零基礎(chǔ)入門進階人工智能(鏈接)