類的設計與實現
構造方法
1.init 與 super
init:構造方法 作用是在創建一個對象后,對對象進行初始化操作
以init開頭的所有方法(系統提供的,自定義的)都稱為構造方法
super 相當于子類中對父類的一個索引,通過索引,可以將子類中包含父類的部分,讓父類去進行初始化
instancetype 相當于id 都是泛型 可以指向任意類的對象 編譯時 編譯器不對指向的對象做任何檢查 只有代碼運行的時候 才會直接給對象發送消息
【注】泛型指針存在一定風險 如果指向的對象不存在該消息 程序直接崩潰
//自定義構造方法的好處
1>可以在對象初始化的時候直接對屬性賦值 代碼代碼更加簡潔
2>從代碼封裝的角度來看,代碼的封裝性更強,更符合編程思維 對對象的操作可以直接在類的內部進行 而不需要在類之外的其他地方進行
重寫構造方法
- (Road *)initWithLength:(int)length{
self = [super init];
//self 代表當前調用該方法的對象 super 相當于一個索引
保證子類中包含父類的部分可以通過父類也進行初始化,最終達到所有的部分完全進行了初始化
if (self) {
_length = length;
}
return self;
}