Junior
Kaip įgyvendinti kelis konstruktorius viename Kotlin klasėje?
sobes.tech AI
Atsakymas iš AI
Kotlin'e naudojami keli konstruktoriai, naudojant pirminį konstruktorių ir, jei reikia, vieną ar kelis antrinius konstruktorius.
Pirminis konstruktorius tiesiogiai deklaruojamas klasės antraštėje:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Klasės turinys
}
Antriniai konstruktoriai deklaruojami naudojant raktinį žodį constructor:
class MyClass {
// Pirminis konstruktorius (neaiškus arba aiškus)
constructor(param1: String) {
// Antrinio konstruktoriaus logika 1
}
constructor(param1: String, param2: Int) {
// Antrinio konstruktoriaus logika 2
}
}
Jei klasei yra pirminis konstruktorius, kiekvienas antrinis konstruktorius turi deleguoti į pirminį konstruktorių naudodamas this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Antrinio konstruktoriaus logika
}
}
Taip pat galima turėti kelis antrinius konstruktorius, deleguojančius pirminiam arba kitiems antriniams konstruktoriams (laikantis delegavimo hierarchiją):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// 1-ojo antrinio konstruktoriaus logika
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// 2-ojo antrinio konstruktoriaus logika
}
}
Svarbūs momentai:
- Pirminio konstruktoriaus kūnas vykdomas prieš antrinių konstruktorių kūnus.
- Pirminio konstruktoriaus antraštėje deklaruoti savybės yra prieinamos antriniuose konstruktoriuose.
- Kotlin rekomenduoja naudoti pirminį konstruktorių ir, jei įmanoma, vengti antrinių konstruktorių, vietoj to naudoti vardinius argumentus arba fabrikos metodus.