classHuman {
? ? varcarArr = ["瑪莎拉蒂","奧迪","寶馬","奔馳"]
? ? // 下標法
? ? subscript(index:Int)->String{
? ? ? ? set{
? ? ? ? ? ? carArr[index] = newValue
? ? ? ? }
? ? ? ? get{
? ? ? ? ? ? returncarArr[index]
? ? ? ? }
? ? }
? ? varname:String=""? // 默認存儲屬性/ 讀寫屬性
? ? varheightM:Double=0.0{//? 默認的存儲屬性/ 讀寫屬性
? ? ? ? willSet{
? ? ? ? ? ? print("之前身高:\(heightM)米,現(xiàn)在身高:\(newValue)米")
? ? ? ? }
? ? ? ? didSet{
? ? ? ? ? ? print("確實長高了档址,之前\(oldValue),現(xiàn)在\(heightM)")
? ? ? ? }
? ? }
? ? varkind:String{// 只讀屬性
? ? ? ? get{
? ? ? ? ? ? return"哺乳動物"
? ? ? ? }
? ? }
? ? varheightCM:Double{// 計算屬性
? ? ? ? set{
? ? ? ? ? ? heightM/= newValue /100
? ? ? ? }
? ? ? ? get{
? ? ? ? ? ? returnheightM*100
? ? ? ? }
? ? }
? ? init(name:String) {
? ? ? ? self.name= name
? ? }
? ? convenienceinit(name:String,height:Double) {
? ? ? ? self.init(name: name)
? ? ? ? self.heightM= height
? ? }
}
varh =Human(name:"呵呵", height:1.88)
h.heightM = 1.77
print(h.heightM)
print(h.heightCM)
h.heightCM = 185
//h.kind = "種類"? 因為kind 是只讀屬性衔肢,不可以賦值
print(h.carArr[0])
print(h[0])? // 因為提供了下標語法,所以可以直接讓對象使用下標0
h[0] = "勞斯萊斯"
print(h[0])