Sobes.tech
Junior

Hogyan valósíthatók meg több konstruktor egy osztályban Kotlinban?

sobes.tech MI

Válasz az MI-től

Kotlinban egy osztálynak lehet egy elsődleges konstruktora és egy vagy több másodlagos konstruktora.

  1. Elsődleges konstruktor: Az osztály fejlécében van meghatározva. Lehet paramétereket tartalmazni.

    class AzEnOsztalyom(private val valamiTulajdonsag: String) { // Elsődleges konstruktor paraméterrel
        // Az osztály törzse
    }
    
  2. Másodlagos konstruktorok: A constructor kulcsszóval vannak deklarálva. Ha az osztálynak van elsődleges konstruktora, minden másodlagos konstruktor közvetlenül vagy közvetve delegálnia kell rá a this() használatával.

    class MasikOsztaly(private val alapertek: Int) { // Elsődleges konstruktor
    
        constructor masikErtek: String) : this(masikErtek.length) { // Másodlagos konstruktor, ami delegál az elsődlegesre
            // A másodlagos konstruktor logikája
            println("Létrehozva stringgel: $masikErtek")
        }
    
        constructor(ertek1: Int, ertek2: Int) : this(ertek1 + ertek2) { // Egy másik másodlagos konstruktor
            // Logika
            println("Létrehozva két int-tel: $ertek1, $ertek2")
        }
    }
    

Elsődleges konstruktor nélkül, a másodlagos konstruktorok nem kötelesek delegálni más konstruktorokra ugyanabban az osztályban (de megtehetik).

class ElsodlegesNelkuli {

    constructor(ertek: Int) {
        println("Létrehozva int-tel: $ertek")
    }

    constructor(ertek: String) {
        println("Létrehozva stringgel: $ertek")
    }
}