这里只是介绍基础,会逐步完善
类calss演示。下边的Person类分别包含了属性、懒存储(懒加载)属性、静态属性、静态方法、实例方法、构造函数、便利构造函数、析构函数。
注意:懒存储属性必须赋值,不能用可选类型。
class Person : NSObject{
var name:String?
var age:Int?
lazy var fatherName:String = "father"
static var motherName:String?
static func getMotherName() -> String{
return motherName!;
}
func descriptionPerson(){
print("我叫\(self.name!),今年\(self.age!)岁")
}
init(name:String) {
self.name = name
}
init(name:String,age:Int) {
self.name = name
self.age = age
}
convenience override init() {
self.init(name:"s",age:43)
}
deinit {
print("我被析构了")
}
}
结构体struct:其实结构体跟类是大同小异的,用struct
关键字
这里只介绍一下两种类型的不同点
- 类可以继承,结构体不可以
- 结构体是复制的方式在代码中传递,类是引用类型(指针你懂得)
- 创建类的时候属性必须赋初始值,不赋值的话可以使用可选类型。结构体创建的时候不需要赋初始值
- 结构体有一个默认的构造方法可以给里边的每一个属性赋值,但是赋值顺序必须要跟属性的定义顺序是一样的。类的话只能通过重写构造方法来实现对属性的赋值
eg:
struct Persons{
var name:String
var age:Int
}
let per = Persons(name:"df",age:13)
print(per.name)