Swift编程中的初始化与反初始化完全讲解

2020-01-08 22:35:17丽君

类类型有两种初始化函数,以检查是否定义存储属性接收初始值,即指定初始化和方便初始化函数。

指定初始化和便捷初始化器

Swift编程中的初始化与反初始化完全讲解

程序指定初始化

复制代码
class mainClass {
    var no1 : Int // local storage
    init(no1 : Int) {
        self.no1 = no1 // initialization
    }
}
class subClass : mainClass {
    var no2 : Int // new subclass storage
    init(no1 : Int, no2 : Int) {
        self.no2 = no2 // initialization
        super.init(no1:no1) // redirect to superclass
    }
}

 

let res = mainClass(no1: 10)
let print = subClass(no1: 10, no2: 20)

println("res is: (res.no1)")
println("res is: (print.no1)")
println("res is: (print.no2)")


当我们使用 playground 运行上面的程序,得到以下结果。

 


res is: 10
res is: 10
res is: 20

程序便捷的初始化

复制代码
class mainClass {
    var no1 : Int // local storage
    init(no1 : Int) {
        self.no1 = no1 // initialization
    }
}

 

class subClass : mainClass {
    var no2 : Int
    init(no1 : Int, no2 : Int) {
        self.no2 = no2
        super.init(no1:no1)
    }
    // Requires only one parameter for convenient method
    override convenience init(no1: Int)  {
        self.init(no1:no1, no2:0)
    }
}
let res = mainClass(no1: 20)
let print = subClass(no1: 30, no2: 50)