Kotlin 提供了幾種構造函數的寫法,以滿足不同的需求。以下是一些 Kotlin 構造函數的妙招:
constructor
關鍵字。主構造函數可以與類名相同,并且可以有參數。當創建類的實例時,主構造函數會被自動調用。class MyClass(val name: String) {
// ...
}
val myInstance = MyClass("John")
constructor
關鍵字定義,并且必須調用主構造函數或使用 this()
函數調用另一個次構造函數。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
代碼塊:
在構造函數中,可以使用 init
代碼塊來執行初始化操作。init
代碼塊會在主構造函數被調用時自動執行,并且只在構造函數中有效。class MyClass(val name: String) {
init {
println("MyClass instance created: $name")
}
}
val myInstance = MyClass("John")
companion object
:
如果需要在類中定義一些靜態方法和屬性,可以使用 companion object
。companion object
可以看作是類的伴生對象,它提供了與類相關的靜態方法和屬性。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 構造函數來創建和管理類的實例。