Sobes.tech
Junior

Come implementare più costruttori in una singola classe in Kotlin?

sobes.tech AI

Risposta dell'AI

Per creare più costruttori in Kotlin si utilizza il costruttore primario e, se necessario, uno o più costruttori secondari.

Il costruttore primario viene dichiarato direttamente nell'intestazione della classe:

class MyClass(primaryParam1: String, primaryParam2: Int) {
    // Corpo della classe
}

I costruttori secondari vengono dichiarati usando la parola chiave constructor:

class MyClass {
    // Costruttore primario ( implicito o esplicito)

    constructor(param1: String) {
        // Logica del costruttore secondario 1
    }

    constructor(param1: String, param2: Int) {
        // Logica del costruttore secondario 2
    }
}

Se la classe ha un costruttore primario, ogni costruttore secondario deve delegare la chiamata al costruttore primario, usando la parola chiave this():

class MyClass(primaryParam: String) {

    constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
        // Logica del costruttore secondario
    }
}

Può anche esserci più costruttori secondari che delegano al costruttore primario o ad altri costruttori secondari (seguendo la gerarchia di delega):

class MyClass(primaryParam: String) {

    constructor(param1: String, param2: Int) : this(param1) {
        // Logica del costruttore secondario 1
    }

    constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
        // Logica del costruttore secondario 2
    }
}

Punti importanti:

  • Il corpo del costruttore primario viene eseguito prima di quello dei costruttori secondari.
  • Le proprietà dichiarate nell'intestazione del costruttore primario possono essere accessibili nel corpo dei costruttori secondari.
  • In Kotlin, si consiglia di usare il costruttore primario e, se possibile, di evitare i costruttori secondari, preferendo argomenti con nome o metodi di fabbrica.