Sobes.tech
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.