Sobes.tech
Junior

Ako implementovať viac konštruktorov v jednej triede v Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu môže mať trieda jeden primárny konštruktor a jeden alebo viac sekundárnych konštruktorov.

  1. Primárny konštruktor: Je definovaný v hlavičke triedy. Môže mať parametre.

    class MojaTrieda(private val nejakaVlastnost: String) { // Primárny konštruktor s parametrom
        // Telo triedy
    }
    
  2. Sekundárne konštruktory: Sú deklarované kľúčovým slovom constructor. Ak má trieda primárny konštruktor, každý sekundárny musí priamo alebo nepriamo delegovať naň pomocou this().

    class InaTrieda(private val hlavnaHodnota: Int) { // Primárny konštruktor
    
        constructor inaHodnota: String) : this(inaHodnota.length) { // Sekundárny delegujúci na primárny
            // Logika sekundárneho konštruktora
            println("Vytvorené s reťazcom: $inaHodnota")
        }
    
        constructor(hodnota1: Int, hodnota2: Int) : this(hodnota1 + hodnota2) { // Iný sekundárny
            // Logika
            println("Vytvorené s dvomi intami: $hodnota1, $hodnota2")
        }
    }
    

Ak nie je primárny konštruktor, sekundárne konštruktory nie sú povinné delegovať na iné konštruktory tej istej triedy (ale môžu).

class BezPrimárneho {

    constructor(hodnota: Int) {
        println("Vytvorené s int: $hodnota")
    }

    constructor(hodnota: String) {
        println("Vytvorené s reťazcom: $hodnota")
    }
}