因爲我有一個User
類有2個參數:first_name,last_name。所以我科特林類爲:構造函數與Kotlin重載
data class User(val first_name:String, val last_name:String)
現在我想一個構造函數,將只接受first_name
,或者可以說只是一個參數。我如何用Kotlin
來定義它?
我知道我們可以通過默認值,並以這種方式我們可以忽略第二個參數,但我們如何編寫多個構造函數?
因爲我有一個User
類有2個參數:first_name,last_name。所以我科特林類爲:構造函數與Kotlin重載
data class User(val first_name:String, val last_name:String)
現在我想一個構造函數,將只接受first_name
,或者可以說只是一個參數。我如何用Kotlin
來定義它?
我知道我們可以通過默認值,並以這種方式我們可以忽略第二個參數,但我們如何編寫多個構造函數?
Kotlin中的類可以具有主構造函數和一個或多個輔助構造函數。主構造函數是類頭的一部分:它在類名(和可選的類型參數)之後。
class Person constructor(firstName: String) {
}
如果主構造沒有任何註釋或能見度改性劑,可以省略構造關鍵字:
class Person(firstName: String) {
}
注意,主構造的參數可以在初始化塊中使用。
class Customer(name: String) {
val customerKey = name.toUpperCase()
}
您也可以按照這個鏈接根據自己的需要:他們也可以在類體內聲明的屬性初始化使用Kotlin
您可以在類體內定義額外的構造
data class User(val firstName: String, val lastName: String) {
constructor(firstName: String) : this(firstName, "")
}
這些「輔助構造函數」必須調用主構造函數或不同的輔助構造函數。請參閱Official documentation on constructors。
所以,實際上這與帶有默認參數的主要構造函數是一樣的,這將是慣用的方式。
data class User(val firstName: String, val lastName: String = "")
我希望這將有助於你
class Person(val name: String, val age: Int = 0) {
override fun toString(): String {
return name + " is " + age + " years Old"
}
}
fun main(args: Array<String>) {
var person = Person(name = "vignesh")
var personNew = Person("vignesh", 23)
println(person.toString())
println(personNew.toString())
}
輸出
維涅什是0歲
維涅什是23歲
這種情況..你不」我想創建另一個構造函數..因爲在Kotlin中,我們可以使用參數作爲可選項 –
https://kotlinlang.org/docs/reference/classes.html –
爲什麼你想要第二個構造函數而不是last_name的默認值?順便說一下,在java和kotlin中,你應該使用CamelCase而不是SnakeCase – D3xter