OC基礎-----> 初始化方法

A ----> 繼承概要

1)面對對象的三大特性:封裝、繼承、多態(tài)

2)繼承即能保證類的完整, 又能簡化代碼

3)定義三個類: 普通僵尸、路障僵尸、鐵桶僵尸,這三個類有很多重復的實例變量和方法,比如:血量、攻擊力、移動速度;行走,攻擊,死亡。 面對對象的繼承特性大大簡化代碼。

把公共的實例變量寫在父類里 , 子類只需要寫自己獨有的實例變量和方法即可。

B ---- > 繼承特點

1)繼承的上層:父類; 繼承的下層:子類

2)繼承的內容 : 所有的實例變量和方法

3)繼承是單向的, 不能相互繼承

4) 繼承具有傳遞性: A 繼承與 B , ?B 繼承與 C , A 具有 B 和 C 的特征和行為

5)如果子類不滿意父類方法的實現(xiàn), 可以重寫(overwrite)父類的方法


C ---- > 重寫從父類繼承來的方法的不同情況

1)完全以子類的實現(xiàn)內容為主,丟棄父類實現(xiàn)的內容。

2)完全以父類的實現(xiàn)內容為主, 沒有子類實現(xiàn)的內容

3)既有父類對該方法的時下, 也有子類對該方法的實現(xiàn)

D ---- > ?super

1)super 是編譯器指令, 并非對象

2) 作用: 給 super 發(fā)消息, 可以指向父類該方法的實現(xiàn)

E ---- > 繼承中方法的執(zhí)行

1、OC 中方法調用采用消息發(fā)送機制 【 receiver message 】;

2、給 CollegeStudent 對象發(fā)送消息 : study

1)查找本類是否實現(xiàn) study(重寫) 方法?

2)如果沒有, 查找父類中 study 是否實現(xiàn)

3)逐級向上查找, 找到即執(zhí)行

4)如果 NSObject 也沒有實現(xiàn), 會拋出異常, 引起 crash

F --- > 初始化方法步驟

1、創(chuàng)建對象分兩步:1)為對象分配空間 2)進行初始化操作

2、初始化方法的主要作用是 : 為某些實例變量賦初值

3、初始化方法在對象的整個生命周期里只使用一次

4、初始化方法實在對象的初始化階段完成其實例變量的賦值操作,一個對象的初始化階段只有一次,所以初始化方法只使用一次

G ---- > 初始化實例

- ( id )init{

// 給super 發(fā)送 init 消息:執(zhí)行父類中實現(xiàn)的 init ?方法

self = [super init];

// 判斷從父類繼承過來的 init 方法 是否初始化成功

if ( self ){

// 初始化設置

}

//返回初始化完成的對象

return self;

}

子類定義了除父類中公共實例變量之外的實例變量

在自身的初始化方法中, 優(yōu)先向super 發(fā)送 init 消息,初始化公共變量, 初始化成功后, 再初始化自身持有變量, 從而完成所有實例變量的初始化

H ---- ?> self

1、self 是系統(tǒng)關鍵字。self 在方法中指代當前方法的調用者

2、self 在實例方法中, 指代調用當前方法的對象

3、self 在類方法中, 指代當前類

I ---- > 初始化方法特征

1、初始化方法是 “-” ?方法

2、id 或 instancetype 類型的返回值

3、以 init 開頭

4、可以帶 0 到多個參數(shù)。

5、內部實現(xiàn) : 限制性super 初始化方法, 再初始化自身變量, 后 return self

J ---- > 初始化過程

1、自己的初始化方法中,優(yōu)先調用父類的初始化方法。

2、父類的初始化方法再調用父類的初始化方法,依次往上調

3、處于最上層的初始化完成之后,回到第二層的初始化方法中,完成第二層的初始化

4、第二層的初始化完成后,回到第三層的初始化方法中,依次執(zhí)行初始化方法,直到本類的初始化方法完成

K ---- > 指定初始化方法

1、一個類可以有多個初始化方法

2、雖然有多個初始化方法, 但是一個對象只能使用一個初始化方法。

例如 : initWithName: ? ? initWithGender: ? initWithName: gender:

3、指定初始化方法 : 無論調用哪一個初始化方法都會調用的初始化方法

4、通常把初始化想做的全部操作放到指定初始化方法中,這樣就無需在每一個初始化方法中都要寫一遍,簡化代碼,方便后期維護

5、選取原則 : 一般選參數(shù)最多的初始化方法作為指定初始化方法

L ---- > 便利構造器簡述

1、封裝類對象創(chuàng)建過程 : 內部實現(xiàn): 封裝了alloc 和初始化操作, 創(chuàng)建對象更加方便快捷

2、1)便利構造器是 “ + ” 方法

2)返回本類型的實例

3)方法名以類名開頭

4)可以有 0 到多個參數(shù) ?+ (id)personWithName : ?gender : ?age :?


M ----- > 小結

1、繼承是面對對象的三大特性之一, 合理的繼承, 能減少很多 冗余代碼,加快開發(fā)速度。

2、初始化方法以 init 開頭,在對象的生命周期中只使用一次

3、遍歷構造器封裝了對象的創(chuàng)建過程, 進一步簡化了創(chuàng)建的步驟。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容