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

A Kotlinban több konstruktor létrehozásához a fő konstruktor és szükség esetén egy vagy több mellékes konstruktor használható.

A fő konstruktor közvetlenül az osztály fejlécében van deklarálva:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Az osztály törzse
}

A mellékes konstruktorokat a constructor kulcsszó segítségével lehet deklarálni:

class MyClass {
    // Fő konstruktor (implicit vagy explicit)

    constructor(param1: String) {
        // A másodlagos konstruktor logikája
    }

    constructor(param1: String, param2: Int) {
        // A másodlagos konstruktor logikája
    }
}

Ha az osztálynak van fő konstruktora, akkor minden mellékes konstruktor delegálnia kell a fő konstruktor hívására, a this() kulcsszó használatával:

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // A másodlagos konstruktor logikája
    }
}

Továbbá, több mellékes konstruktor is lehet, amelyek a fő vagy más mellékes konstruktorokat delegálják (a delegáció hierarchiájának megfelelően):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // Az első mellékes konstruktor logikája
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // A második mellékes konstruktor logikája
    }
}

Fontos pontok:

  • A fő konstruktor törzse a mellékes konstruktorok törzse előtt hajtódik végre.
  • A fő konstruktor fejlécében deklarált tulajdonságok elérhetőek lehetnek a mellékes konstruktorok törzsében.
  • Kotlinban ajánlott a fő konstruktor használata, és lehetőség szerint mellékes konstruktorok elkerülése, névvel ellátott argumentumokat vagy gyári metódusokat használva.