classHuman {
? ? varcarArr = ["瑪莎拉蒂","奧迪","寶馬","奔馳"]
? ? // 下標(biāo)法
? ? subscript(index:Int)->String{
? ? ? ? set{
? ? ? ? ? ? carArr[index] = newValue
? ? ? ? }
? ? ? ? get{
? ? ? ? ? ? returncarArr[index]
? ? ? ? }
? ? }
? ? varname:String=""? // 默認(rèn)存儲(chǔ)屬性/ 讀寫屬性
? ? varheightM:Double=0.0{//? 默認(rèn)的存儲(chǔ)屬性/ 讀寫屬性
? ? ? ? willSet{
? ? ? ? ? ? print("之前身高:\(heightM)米,現(xiàn)在身高:\(newValue)米")
? ? ? ? }
? ? ? ? didSet{
? ? ? ? ? ? print("確實(shí)長高了,之前\(oldValue),現(xiàn)在\(heightM)")
? ? ? ? }
? ? }
? ? varkind:String{// 只讀屬性
? ? ? ? get{
? ? ? ? ? ? return"哺乳動(dòng)物"
? ? ? ? }
? ? }
? ? varheightCM:Double{// 計(jì)算屬性
? ? ? ? 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 = "種類"? 因?yàn)閗ind 是只讀屬性,不可以賦值
print(h.carArr[0])
print(h[0])? // 因?yàn)樘峁┝讼聵?biāo)語法,所以可以直接讓對(duì)象使用下標(biāo)0
h[0] = "勞斯萊斯"
print(h[0])