重寫構造方法實現兩種功能

2021-07-04 18:55:48 字數 1139 閱讀 6696

要求使每個新建立出來的物件都有乙個自定義的預設值

實現-(instancetype)initwith***:(int)age;

思考&實現:建立乙個學生類student,通過重寫構造方法實現建立學生物件的時候,預設的年齡的值為指定的年齡

student.h

#import

@inte***ce

student : nsobject

@property (nonatomic, assign)int age;

-(instancetype) initwithage:(int)age;

+(instancetype)studentagewith:(int)age;

@end

student.m

import "student.h"

@implementation

student

-(void)dealloc

//自定義構造方法

-(instancetype) initwithage:(int)age

return

self;

}//自定義初始化方法

+(instancetype)studentagewith:(int)age

@end

main.m

#import

#import "student.h"

int main(int argc, const

char * argv)

reutrn 0;

}

student.h

#import

@inte***ce

student : nsobject

@property (nonatomic, assign)int age;

@end

student.m

import "student.h"

@implementation

student

-(instancetype)init

return

self;

}@end

重寫父類方法的兩種實現方式

如果想重寫乙個類的方法,既可以通過繼承該類 在這裡就不多少了 還可以通過類別 類的擴充套件catologe 方法 比如重寫uialertview 的 layoutsubviews 這樣類擴充套件是可以的 但是,這樣會導致在同乙個類裡面用到的所有uialertview 都會重寫這樣的方法 導 inte...

RMQ的兩種實現方法

st表實現rmq rmq演算法 range minimum maximum query 是求區間極值的高效演算法,依據所需實現的不同效能可以有多種寫法,這裡主要講基於線段樹和稀疏表 sparse table 的兩種方法 線段樹是維護區間的一類高效資料結構,依據這個特性,我們可以用線段樹實現rmq演算...

C 兩種構造方法的效率對比

c 中類的建構函式寫法有兩種,一種是使用初始化列表,一種是在 塊中賦值。很多書中 包括c primer c primer plus等等 都會提到應該盡量使用初始化列表而不是在 塊中賦值,因為使用初始化列表通常比在 塊中賦值效率要高。但是這個結論是怎麼來的?如何驗證呢?今天我們來設計乙個小例子對比一下...