class Person {
//一个属性带有一个观察者
var age = 1 {
willSet {
//观察属性将要变化的值
print("预祝你\(newValue)岁生日快乐🎂")
}
didSet {
//观察属性变化以后的值
print("恭喜你从\(oldValue)岁到\(age)岁")
}
}
//改变age的值
func happyBirthday() -> Void {
age += 1
}
}
var xiaoPerson = Person.init()
for i in 1...6 {
xiaoPerson.happyBirthday()
}
//计算圆的面积
class Circle {
var radio: Double = 0.0
var getArea: Double {
get {
return radio * radio * M_PI
}
set {
radio = newValue
}
}
}
var c = Circle.init()
c.getArea = 10 //自动调用set方法赋值
print(c.getArea)//自动调用get方法获取值
class Rect {
var pointX: Int = 0
var pointY: Int = 0
var width: Int = 0
var height: Int = 0
var test: String = ""
//使用下标对成员变量进行赋值和获取
subscript(index: Int) -> AnyObject {
get {
switch index {
case 0:
return self.pointX
case 1:
return self.pointY
case 2:
return self.width
case 3:
return self.height
default:
return self.test
}
}
set {
switch index {
case 0:
self.pointX = Int(newValue as! NSNumber)
case 1:
self.pointY = Int(newValue as! NSNumber)
case 2:
self.width = Int(newValue as! NSNumber)
case 3:
self.height = Int(newValue as! NSNumber)
default:
self.test = newValue as! String
}
}
}
}
var rect = Rect.init()
rect[0] = 10
rect[1] = 20
rect[2] = 30
rect[3] = 40
rect[4] = "hello"
print(rect[0],rect[3],rect[4])