import UIKit
//没有成员变量 都是属性
class Person: NSObject {
//计算属性:给属性提供get方法 封装其他属性的方法 不能设置值
//private 表示当前类访问 其他文件无法访问
private var _name: String?
var name: String? {
get {
return _name
} set {
//
_name = newValue
}
}
//只读计算属性 给属性提供get方法 封装其他属性的方法 不能设置值
var title: String? {
get {
return "我叫\(name)"
}
}
//只读计算简写
var title1: String? {
return "我叫\(name)"
}
//可选属性,必选属性,也叫做存储属性 取值和存值都是操作本身,没有get和set
var address: String?
var address1: String = ""
/*
计算属性操作的是其他属性,不需要开辟,设置的是其他资源,每次都会调用get方法
存储属性操作的是本身,需要开辟内存空间,只需要计算一次,下次获取之从内存中
*/
lazy var title3: String? = {
return "我叫\(self.name)"
}()
//懒加载和只读计算属性和很像
}
//可选属性 属性初始化两种方式,直接等号右边 或者重写构造函数
var name: String?
lazy var person1: Person = Person()
//第一次使用的时候会进行初始化
lazy var person2: Person = {() -> Person in
let person = Person()
person.name = "哈哈"
return person
}()