Sobes.tech
Junior

Jak implementovat více konstruktorů v jedné třídě v Kotlinu?

sobes.tech AI

Odpověď od AI

V Kotlinu může třída mít jeden primární konstruktor a jeden nebo více sekundárních konstruktorů.

  1. Primární konstruktor: Je definován v hlavičce třídy. Může mít parametry.

    class MojeTřída(private val nějakáVlastnost: String) { // Primární konstruktor s parametrem
        // Tělo třídy
    }
    
  2. Sekundární konstruktor: Jsou deklarovány klíčovým slovem constructor. Pokud třída má primární konstruktor, každý sekundární konstruktor musí přímo nebo nepřímo delegovat na něj pomocí this().

    class JináTřída(private val primárníHodnota: Int) { // Primární konstruktor
    
        constructor jináHodnota: String) : this(jináHodnota.length) { // Sekundární konstruktor delegující na primární
            // Logika sekundárního konstruktoru
            println("Vytvořeno s řetězcem: $jináHodnota")
        }
    
        constructor(hodnota1: Int, hodnota2: Int) : this(hodnota1 + hodnota2) { // Další sekundární konstruktor
            // Logika
            println("Vytvořeno se dvěma int: $hodnota1, $hodnota2")
        }
    }
    

Pokud není primární konstruktor, sekundární konstruktor nemusí delegovat na jiné konstruktory třídy (ale může).

class BezPrimárníhoKonstruktora {

    constructor(hodnota: Int) {
        println("Vytvořeno s int: $hodnota")
    }

    constructor(hodnota: String) {
        println("Vytvořeno s řetězcem: $hodnota")
    }
}