Sobes.tech
Junior

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

sobes.tech AI

Risposta dell'AI

In Kotlin, una classe può avere un costruttore primario e uno o più costruttori secondari.

  1. Costruttore primario: Si definisce nella dichiarazione della classe. Può avere parametri.

    class LaMiaClasse(private val qualcheProprietà: String) { // Costruttore primario con parametro
        // Corpo della classe
    }
    
  2. Costruttori secondari: Si dichiarano con la parola chiave constructor. Se la classe ha un costruttore primario, ogni costruttore secondario deve delegare direttamente o indirettamente ad esso usando this().

    class UnAltraClasse(private val valorePrimario: Int) { // Costruttore primario
    
        constructor(altroValore: String) : this(altroValore.length) { // Costruttore secondario che delega al primario
            // Logica del costruttore secondario
            println("Creato con stringa: $altroValore")
        }
    
        constructor(valore1: Int, valore2: Int) : this(valore1 + valore2) { // Un altro costruttore secondario
            // Logica
            println("Creato con due int: $valore1, $valore2")
        }
    }
    

Se non c'è un costruttore primario, i costruttori secondari non sono obbligati a delegare ad altri costruttori della stessa classe (ma possono).

class ClasseSenzaPrimario {

    constructor(valore: Int) {
        println("Creato con int: $valore")
    }

    constructor(valore: String) {
        println("Creato con stringa: $valore")
    }
}