Sobes.tech
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.