Junior
Ako implementovať viac konštruktorov v jednej triede v Kotlin?
sobes.tech AI
Odpoveď od AI
Na vytvorenie viacerých konštruktorov v Kotlin sa používa primárny konštruktor a podľa potreby jeden alebo viac sekundárnych konštruktorov.
Primárny konštruktor je deklarovaný priamo v hlavičke triedy:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Telo triedy
}
Sekundárne konštruktory sú deklarované pomocou kľúčového slova constructor:
class MyClass {
// Primárny konštruktor (implicitný alebo explicitný)
constructor(param1: String) {
// Logika sekundárneho konštruktora 1
}
constructor(param1: String, param2: Int) {
// Logika sekundárneho konštruktora 2
}
}
Ak má trieda primárny konštruktor, každý sekundárny konštruktor musí delegovať volanie na primárny konštruktor pomocou this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Logika sekundárneho konštruktora
}
}
Môžu existovať aj viaceré sekundárne konštruktory, ktoré delegujú na primárny alebo na iné sekundárne konštruktory (dodržiavaním hierarchie delegácie):
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Logika prvého sekundárneho konštruktora
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Logika druhého sekundárneho konštruktora
}
}
Dôležité body:
- Telo primárneho konštruktora sa vykoná pred telom sekundárnych konštruktorov.
- Vlastnosti deklarované v hlavičke primárneho konštruktora môžu byť dostupné v tele sekundárnych konštruktorov.
- V Kotlin je odporúčané používať primárny konštruktor a, ak je to možné, vyhýbať sa sekundárnym konštruktorom, uprednostňujúc pomenované argumenty alebo továrenské metódy.