引入:不給存儲屬性賦值,報錯
定義類屬性不報錯,結(jié)構(gòu)體的實例時必須為所有的存儲屬性設(shè)置一個合適的初始值
不報錯,3種方式:
1 可選型
2 直接定義的時候初始化,直接=
3 構(gòu)造函數(shù)中初始化
知識點一:構(gòu)造函數(shù)的作用
1、構(gòu)造函數(shù)用于初始化一個類的實例(創(chuàng)建對象)
2、默認情況下載創(chuàng)建一個類時,必然會調(diào)用一個構(gòu)造函數(shù)
3、即便是沒有編寫任何構(gòu)造函數(shù),編譯器也會提供一個默認的構(gòu)造函數(shù)
知識點二:默認構(gòu)造函數(shù)
1、使用 init 關(guān)鍵字來寫,
2、構(gòu)造函數(shù)沒有func修飾
3、構(gòu)造函數(shù)默認完成調(diào)用 不能手動調(diào)用
4、構(gòu)造函數(shù)就像一個沒有形式參數(shù)的實例方法,
知識點三:自定義構(gòu)造函數(shù)
1、可以自定義構(gòu)造函數(shù)
2、自定義構(gòu)造函數(shù)和默認構(gòu)造函數(shù)可以同時存在
class Person{
var name:String
var age:Int
var sex:String
//默認構(gòu)造函數(shù)
init() {
print("init被調(diào)用")
self.name = "張三"
self.age = 10
self.sex = "男"
}
//自定義構(gòu)造函數(shù)
init(name:String,age:Int,sex:String){
self.name = name
self.age = age
self.sex = sex
}
}
var p = Person()
p.name
p.age
var p2 = Person(name: "lisi", age: 18, sex: "女")