Junior — Middle
Lehet-e Kotlinben olyan osztályt definiálni, amely több konstruktorral rendelkezik?
sobes.tech MI
Válasz az MI-től
Igen, Kotlinban lehet több konstruktorral rendelkező osztályt definiálni. Ehhez egy fő (primary) konstruktor és egy vagy több másodlagos (secondary) konstruktor használható.
A fő konstruktor a osztály fejlécében van deklarálva, a másodlagosak pedig — az osztály törzsében a constructor kulcsszóval.
Példa:
class User(val name: String) {
var age: Int = 0
// Másodlagos konstruktor
constructor(name: String, age: Int) : this(name) {
this.age = age
}
}
Itt a fő konstruktor elfogadja a name-t, a másodlagos pedig a name és age-t. A másodlagos konstruktor a főt hívja : this(name)-tel, és inicializálja a kiegészítő tulajdonságot.