Kotlin 提供了幾種不同的構(gòu)造函數(shù),以滿足各種場(chǎng)景的需求。以下是一些關(guān)于 Kotlin 構(gòu)造函數(shù)的要點(diǎn):
constructor
關(guān)鍵字進(jìn)行定義。主構(gòu)造函數(shù)可以與類(lèi)名相同,也可以不同。如果類(lèi)中沒(méi)有定義主構(gòu)造函數(shù),編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)的無(wú)參構(gòu)造函數(shù)。class MyClass(val name: String, val age: Int) {
// 主構(gòu)造函數(shù)
}
constructor
關(guān)鍵字定義,并在主構(gòu)造函數(shù)之前。次構(gòu)造函數(shù)必須調(diào)用主構(gòu)造函數(shù)或使用 this()
關(guān)鍵字調(diào)用同一個(gè)類(lèi)中的另一個(gè)次構(gòu)造函數(shù)。class MyClass(val name: String) {
constructor(name: String, age: Int) : this(name) {
// 次構(gòu)造函數(shù)
}
}
this()
關(guān)鍵字進(jìn)行調(diào)用。class MyClass(val name: String) {
constructor(name: String, age: Int) : this(name) {
// 委托給另一個(gè)構(gòu)造函數(shù)
}
}
constructor
關(guān)鍵字定義構(gòu)造函數(shù),并在參數(shù)列表中指定參數(shù)類(lèi)型和名稱。class MyClass(val name: String, val age: Int) {
// 構(gòu)造函數(shù)接受兩個(gè)參數(shù)
}
=
符號(hào)指定。class MyClass(val name: String, val age: Int = 18) {
// 構(gòu)造函數(shù)為 age 參數(shù)指定默認(rèn)值 18
}
...
符號(hào)定義可變參數(shù)。可變參數(shù)在構(gòu)造函數(shù)中允許傳遞任意數(shù)量的參數(shù),這些參數(shù)將被組合成一個(gè)數(shù)組。在參數(shù)類(lèi)型后面加上 ...
符號(hào)表示可變參數(shù)。class MyClass(val names: Array<String>) {
// 構(gòu)造函數(shù)接受一個(gè)可變參數(shù) names
}
了解這些關(guān)于 Kotlin 構(gòu)造函數(shù)的要點(diǎn),可以幫助您更好地使用 Kotlin 進(jìn)行編程。