classHuman {
? ? var carArr = ["寶馬x1","大眾CC","大眾途觀","奔馳GLA"]
? ? //下標(biāo)法
? ? subscript(index:Int) ->String{
? ? ? ? set{
? ? ? ? ? ? carArr[index] = newValue
? ? ? ? }
? ? ? ? get{
? ? ? ? ? ? returncarArr[index]
? ? ? ? }
? ? }
? ? varname:String=""? ? //默認(rèn)的存儲(chǔ)屬性/讀寫(xiě)屬性
? ? varheightM:Double=0.0{? //默認(rèn)的存儲(chǔ)屬性/讀寫(xiě)屬性,屬性監(jiān)聽(tīng)
? ? ? ? willSet{
? ? ? ? ? ? print("之前身高:\(heightM)米,現(xiàn)在身高:\(newValue)米")
? ? ? ? }
? ? ? ? didSet{
? ? ? ? ? ? print("確實(shí)長(zhǎng)高了,之前\(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.83)
h.heightM = 1.85
print(h.heightM)
print(h.heightCM)
h.heightCM = 185
print(h.heightM)
print(h.heightCM)
//h.kind = "動(dòng)物" //因?yàn)閗ind是只讀屬性,不可以賦值
print(h.kind)
print(h.carArr[0])
print(h[0])? ? //因?yàn)樘峁┝讼聵?biāo)法,所以可以直接讓對(duì)象使用下標(biāo)0
h[0] = "寶馬x3"
print(h.carArr[0])
print(h[0])