classHuman {
varcarArr = ["玛莎拉蒂","奥迪","宝马","奔驰"]
// 下标法
subscript(index:Int)->String{
set{
carArr[index] = newValue
}
get{
returncarArr[index]
}
}
varname:String="" // 默认存储属性/ 读写属性
varheightM:Double=0.0{// 默认的存储属性/ 读写属性
willSet{
print("之前身高:\(heightM)米,现在身高:\(newValue)米")
}
didSet{
print("确实长高了,之前\(oldValue),现在\(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])