舉例:
class Rectangle{
//存儲屬性
var height:Double = 0
var width:Double = 0
//計算屬性
var area:Double{
get{
return height*width
}
set{
width=newValue/height
}
}
//靜態(tài)屬性
static var max:Double = 10000
}
var r = Rectangle()//初始化
r.height += 10
r.width += 20
print(r.area)
Rectangle.max += 300
Under The Hood
==存儲屬性的本質(zhì)是一個存儲變量+兩個訪問器方法(get,set)==
==計算屬性的本質(zhì)是兩個訪問器方法,可以簡化為 get(只讀)==
屬性初始化
方法1:提供默認(rèn)值
var x =100
方法2:構(gòu)造器初始化
var x
init(x){
self.x=x
}
結(jié)構(gòu):編譯器已經(jīng)默認(rèn)生成初始化器
屬性觀察者
var data:Int = 0{
willSet {
print("\(newValue)"
}
didSet {
print("Changed from \(oldValue) to \(data)")
}
}