属性分为普通属性/计算属性:
存储属性:就是存储在特定类或结构体实例里的一个常量或变量。存储属性可以是变量存储属性(用关键字 var定义),也可以是常量存储属性(用关键字 let定义)。
计算属性:不直接存储值,而是提供一个 getter和一个可选的 setter,来间接获取和设置其他属性或变量的值。(除存储属性外,类、结构体和枚举可以定义计算属性。)
(只读计算属性: 只有 getter没有 setter的计算属性就是只读计算属性。只读计算属性总是返回一个值,可以通过点运算符访问,但不能设置新的值。 )
1丶属性调用
overridefunc viewDidLoad() {
super.viewDidLoad()
let shape =Shape()
let nickName = shape.nickName_3///< get方法
print(nickName)
shape.nickName_3 ="li"///< set方法
print(shape.nickName_3)
shape.userAge =11///<计算属性调用
}
2丶属性声明
class Shape {
///<普通属性
var userName_1:String ="nickName_1"
var userName_2:String ="nickName_2"
var userName_3:String ="nickName_3"
///<计算属性
var nickName_3:String
{
get {
returnuserName_1+userName_2
}
set {
userName_3 = newValue+"nickName_3"
print("userName_3属性已经变化为"+userName_3)
}
}
var userAge:Int =0
{
willSet {
print("age属性即将变化")
}
didSet
{
ifuserAge <10
{
userName_1 ="zhang"
print("age属性已经变化"+userName_1)
}
else
{
userName_1 ="wang"
print("age属性已经变化"+userName_1)
}
}
}
}
3丶打印
nickName_1nickName_2
userName_3属性已经变化为linickName_3
nickName_1nickName_2
age属性即将变化
age属性已经变化wang