引入:不給存儲(chǔ)屬性賦值,報(bào)錯(cuò)
定義類屬性不報(bào)錯(cuò),結(jié)構(gòu)體的實(shí)例時(shí)必須為所有的存儲(chǔ)屬性設(shè)置一個(gè)合適的初始值
不報(bào)錯(cuò)隙袁,3種方式:
1 可選型
2 直接定義的時(shí)候初始化,直接=
3 構(gòu)造函數(shù)中初始化
構(gòu)造函數(shù)是一種特殊的函數(shù)弃榨,主要用來在創(chuàng)建對(duì)象時(shí)初始化對(duì)象菩收,為對(duì)象成員變量設(shè)置初始值,在 OC 中的構(gòu)造函數(shù)是 initWithXXX鲸睛,在 Swift 中由于支持函數(shù)重載坛梁,所有的構(gòu)造函數(shù)都是 init
知識(shí)點(diǎn)一:構(gòu)造函數(shù)的作用
1、構(gòu)造函數(shù)用于初始化一個(gè)類的實(shí)例(創(chuàng)建對(duì)象)
2腊凶、默認(rèn)情況下載創(chuàng)建一個(gè)類時(shí),必然會(huì)調(diào)用一個(gè)構(gòu)造函數(shù)
3划咐、即便是沒有編寫任何構(gòu)造函數(shù),編譯器也會(huì)提供一個(gè)默認(rèn)的構(gòu)造函數(shù)
知識(shí)點(diǎn)二:默認(rèn)構(gòu)造函數(shù)
1、使用 init 關(guān)鍵字來寫钧萍,
2褐缠、構(gòu)造函數(shù)沒有func修飾
3、構(gòu)造函數(shù)默認(rèn)完成調(diào)用 不能手動(dòng)調(diào)用
4风瘦、構(gòu)造函數(shù)就像一個(gè)沒有形式參數(shù)的實(shí)例方法队魏,
知識(shí)點(diǎn)三:自定義構(gòu)造函數(shù)
1、可以自定義構(gòu)造函數(shù)
2、自定義構(gòu)造函數(shù)和默認(rèn)構(gòu)造函數(shù)可以同時(shí)存在
class Person{
var name:String
var age:Int
var sex:String
//默認(rèn)構(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: "女")