Sobes.tech
Junior

Cum se implementează mai mulți constructori într-o singură clasă în Kotlin?

sobes.tech AI

Răspuns de la AI

Pentru a crea mai mulți constructori în Kotlin, se utilizează constructorul primar și, dacă este necesar, unul sau mai mulți constructori secundari.

Constructorul primar este declarat direct în antetul clasei:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Corpul clasei
}

Constructorii secundari sunt declarați cu ajutorul cuvântului cheie constructor:

class MyClass {
    // Constructorul primar (implicit sau explicit)

    constructor(param1: String) {
        // Logica constructorului secundar 1
    }

    constructor(param1: String, param2: Int) {
        // Logica constructorului secundar 2
    }
}

Dacă clasa are un constructor primar, fiecare constructor secundar trebuie să delegheze apelul către constructorul primar, folosind cuvântul cheie this():

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // Logica constructorului secundar
    }
}

De asemenea, pot exista mai mulți constructori secundari care deleghează către constructorul primar sau către alți constructori secundari (respectând ierarhia de delegare):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // Logica constructorului secundar 1
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // Logica constructorului secundar 2
    }
}

Puncte importante:

  • Corpul constructorului primar se execută înaintea corpului constructorilor secundari.
  • Proprietățile declarate în antetul constructorului primar pot fi accesibile în corpul constructorilor secundari.
  • În Kotlin, se recomandă utilizarea constructorului primar și, dacă este posibil, evitarea constructorilor secundari, preferând argumente cu nume sau metode de fabricare.