Swift基礎3.1——構造函數

構造函數是一種特殊的函數,主要用來在創建對象時初始化對象,爲對象成員變量設置初始值,在 OC 中的構造函數是 initWithXXX,在 Swift 中由於支持函數重載,所有的構造函數都是 init

  • 非 Optional 屬性,都必須在構造函數中設置初始值,從而保證對象在被實例化的時候,屬性都被正確初始化
  • 在調用父類構造函數之前,必須保證本類的屬性都已經完成初始化
  • Swift 中的構造函數不用寫 func

子類的構造函數

  • 自定義子類時,需要在構造函數中,首先爲本類定義的屬性設置初始值
  • 然後再調用父類的構造函數,初始化父類中定義的屬性
/// 工程師類
class Engineer: Person {

    var no: String

    override init() {
        no = "001"

        super.init()
    }
}

小結

  • 先調用本類的構造函數初始化本類的屬性
  • 然後調用父類的構造函數初始化父類的屬性
  • super.init() 必須放在本類屬性初始化的後面,保證本類屬性全部初始化完成

Optional 屬性

  • 將對象屬性類型設置爲 Optional

class Person: NSObject {
    /// 姓名
    var name: String?
    /// 年齡
    var age: Int?
}
  • 可選屬性不需要設置初始值,默認初始值都是 nil
  • 可選屬性是在設置數值的時候才分配空間的,是延遲分配空間的,更加符合移動開發中延遲創建的原則

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章