構造器 二 指定構造器 便利構造器

2021-09-07 12:48:46 字數 840 閱讀 5972

在swift中類一共同擁有兩種構造器:

我個人的理解為在類中沒有加不論什麼keyword的構造器稱為指定構造器。作用為初始化類中全部的例項儲存屬性

init()

我個人理解為在類中(僅僅能在類中,結構體和列舉裡面是沒有的)加上conveniencekeyword的構造器為便利構造器,作用為輔助性呼叫指定構造器進行一系列的工作。感覺體現了在object-c中的**模式。

convenience init()

綜合的看乙個勵志吧,請原諒程式猿的屌絲:

class man

convenience init(say:string)

} var man1=man(say: "我喜歡你!

") print(man1.say) var man2=man(say: "啊,不,我不喜歡你!我愛你!

") print(man2.say)

第一階段:

程式呼叫子類的某個構造器

為例項分配記憶體, 此時例項的記憶體還沒有被初始化

指定構造器確保子類定義的全部例項儲存屬性都已被賦初值

指定構造器將呼叫父類的構造器, 完畢父類定義的例項儲存屬性的初始化

沿著呼叫父類構造器的構造器鏈一直往上執行, 直到到達構造器鏈的最頂部

第二階段:

沿著繼承樹往下, 構造器此時能夠改動例項屬性和訪問self, 甚至能夠呼叫例項方法

最後, 構造器鏈中的便利構造器都有機會定製例項和使用self

構造器 二 指定構造器 便利構造器

在swift中類一共有兩種構造器 我個人的理解為在類中沒有加任何關鍵字的構造器稱為指定構造器,作用為初始化類中所有的例項儲存屬性 init 我個人理解為在類中 只能在類中,結構體和列舉裡面是沒有的 加上convenience關鍵字的構造器為便利構造器,作用為輔助性呼叫指定構造器進行一系列的工作。感覺...

Object C 便利構造器

答案是有的 便利構造器。便利構造器在初始化的方法的基礎上面前進了一小步。封裝了物件建立的過程。便利構造器是 類方法。返回本類的例項,方法名以類名開頭。可以有0或者多個引數。內部實現 封裝了alloc和init方法。使用起來更簡潔。宣告 便利構造器 instancetype personwithnam...

構造器(構造方法)

知識點 1.乙個類即使什麼都不寫,他也會存在乙個方法 構造器 構造方法 2.構造方法的名字必須與定義他的類名完全相同,沒有返回型別,甚至連void也沒有。3.構造方法的呼叫是在建立乙個物件時使用new操作進行的。構造方法的作用是初始化物件。4.有參構造 一旦定義了有參構造,無參一定要寫出來!pack...