第二天 初始化方法便利構造器

2021-07-08 15:28:54 字數 1519 閱讀 7915

二. 初始化方法

* 建立物件:

1. 開闢空間

2. 初始化

* 初始化方法的主要作用是:為某些例項變數賦值,初始化方法在物件的整個生命週期裡只使用一次

* 注意:初始化方法是在物件的初始化階段完成其實例變數的賦值操作,乙個物件的初始化階段只有一次,所以初始化方法只使用一次

- (id)init

//返回初始化完成的物件

return self;

} 子類定義了除父類中公共例項變數之外的例項變數

* 在自身的初始化方法中,優先向super傳送init訊息,初始化公共變數,初始化成功之後,在初始化自身特有的變數,從而完成全部例項變數的初始化.

* self是系統關鍵字,self在方法中指代當前方法的呼叫者.

* self在例項方法中,指代呼叫當前方法的物件

* self在類方法中,指代當前類

* 初始化方法的特徵:

1. 初始化方法是」—」方法.

2. id或者instancetype型別的返回值.

3. 以init開頭

4. 可以帶0到多個引數

* 內部實現:

1. 先執行super的初始化方法,再初始化自身變數,然後return self

* 初始化過程

1. 自己的初始化方法中,優先呼叫父類的初始化方法

2. 父類的初始化方法中在呼叫父類的初始化方法,一次往上呼叫

3. 處於最上層的初始化完成之後,回到第二層的初始化方法中,完成第二層的初始化

4. 第二層的初始化完成之後,回到第三層的初始化方法中,依次執行初始化方法,直到本類的初始化方法完成

* 指定初始化方法:

1. 乙個類可以有多個初始化方法

2. 雖然可以有多個初始化方法,但是乙個物件只能使用乙個初始化方法

3. 如果要在物件初始化時,都要給例項變數賦初值,如何實現

* 便利構造器:

1. 封裝了物件建立過程:內部實現—封裝了alloc和初始化操作,建立物件更加方便快捷

2. 便利構造器是」+」方法

3. 返回本型別的例項

4. 方法名以類名開頭

5. 可以有0到多個引數

* 例如:

宣告:

+(id)personwithname:(nsstring )name gender:(nsstring )gender;

實現:

+(id)personwithname:(nsstring *)name gender(nsstring)gender

呼叫:

person *person = [person personwithname:@「frank」 gender:@「男」];

* 繼承是物件導向的三大特性之一, 合理的繼承,能減少很多冗餘**, 加快開發速度

* 初始化方法以init開頭,在物件的生命週期中只使用一次

* 便利構造器封裝了物件的建立過程, 進一步簡化了物件建立過程,進一步簡化了物件建立的步驟

03 繼承 初始化方法 便利構造器

一 繼承 1 簡述 繼承的上層 父類,繼承的下層 子類 繼承是單向的,不能相互繼承 繼承具有傳遞性 a繼承與b,b繼承與c,a具有b和c的特徵和行為 子類能繼承父類全部的特徵和行為 2 繼承的實現 學生繼承 person 3 繼承的特點 oc中只允許單繼承 沒有父類的類稱為根類,oc中的根類是nso...

OC 繼承,便利構造器,初始化方法

zombie.h 自定義初始化方法的宣告 id initwithblood nsinteger blood attack nsinteger attack speed cgfloat speed 便利構造器 zombie zombiewithblood nsinteger blood attack ...

OC之繼承,初始化方法,便利構造器

1.繼承 是物件導向程式設計的乙個核心,在objective c的繼承體系中,位於最頂層的根類是nsobject,繼承的方向是單向的,而且只能繼承乙個父類。繼承具有傳遞性,例如 學生繼承於人類,大學生繼承於學生,則大學生不但具有學生的成員變數和方法,而且也具有人類的成員變數和方法。2.初始化方法 顧...