举例:
class Rectangle{
//存储属性
var height:Double = 0
var width:Double = 0
//计算属性
var area:Double{
get{
return height*width
}
set{
width=newValue/height
}
}
//静态属性
static var max:Double = 10000
}
var r = Rectangle()//初始化
r.height += 10
r.width += 20
print(r.area)
Rectangle.max += 300
Under The Hood
==存储属性的本质是一个存储变量+两个访问器方法(get,set)==
==计算属性的本质是两个访问器方法,可以简化为 get(只读)==
属性初始化
方法1:提供默认值
var x =100
方法2:构造器初始化
var x
init(x){
self.x=x
}
结构:编译器已经默认生成初始化器
属性观察者
var data:Int = 0{
willSet {
print("\(newValue)"
}
didSet {
print("Changed from \(oldValue) to \(data)")
}
}