Kotlin 提供了幾種構(gòu)造函數(shù)的寫法,以滿足不同的需求。以下是一些 Kotlin 構(gòu)造函數(shù)的妙招:
constructor
關(guān)鍵字。主構(gòu)造函數(shù)可以與類名相同,并且可以有參數(shù)。當(dāng)創(chuàng)建類的實(shí)例時(shí),主構(gòu)造函數(shù)會(huì)被自動(dòng)調(diào)用。class MyClass(val name: String) {
// ...
}
val myInstance = MyClass("John")
constructor
關(guān)鍵字定義,并且必須調(diào)用主構(gòu)造函數(shù)或使用 this()
函數(shù)調(diào)用另一個(gè)次構(gòu)造函數(shù)。class MyClass(val name: String) {
constructor(name: String, age: Int) : this(name) {
this.age = age
}
}
val myInstance1 = MyClass("John")
val myInstance2 = MyClass("John", 30)
init
代碼塊:
在構(gòu)造函數(shù)中,可以使用 init
代碼塊來執(zhí)行初始化操作。init
代碼塊會(huì)在主構(gòu)造函數(shù)被調(diào)用時(shí)自動(dòng)執(zhí)行,并且只在構(gòu)造函數(shù)中有效。class MyClass(val name: String) {
init {
println("MyClass instance created: $name")
}
}
val myInstance = MyClass("John")
companion object
:
如果需要在類中定義一些靜態(tài)方法和屬性,可以使用 companion object
。companion object
可以看作是類的伴生對象,它提供了與類相關(guān)的靜態(tài)方法和屬性。class MyClass(val name: String) {
companion object {
const val MY_CONSTANT = "Hello, World!"
fun myStaticFunction() {
println("This is a static function.")
}
}
}
println(MyClass.MY_CONSTANT) // 輸出 "Hello, World!"
MyClass.myStaticFunction() // 輸出 "This is a static function."
這些妙招可以幫助你更好地使用 Kotlin 構(gòu)造函數(shù)來創(chuàng)建和管理類的實(shí)例。