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.
-
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 } -
Másodlagos konstruktorok: A
constructorkulcsszó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á athis()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")
}
}