Sobes.tech
Junior

Comment implémenter plusieurs constructeurs dans une seule classe en Kotlin?

sobes.tech IA

Réponse de l'IA

En Kotlin, une classe peut avoir un constructeur primaire et un ou plusieurs constructeurs secondaires.

  1. Constructeur primaire : Défini dans la déclaration de la classe. Peut avoir des paramètres.

    class MaClasse(private val unePropriete: String) { // Constructeur primaire avec paramètre
        // Corps de la classe
    }
    
  2. Constructeurs secondaires : Déclarés avec le mot-clé constructor. Si la classe possède un constructeur primaire, chaque constructeur secondaire doit le déléguer directement ou indirectement en utilisant le mot-clé this().

    class UneAutreClasse(private val valeurPrimaire: Int) { // Constructeur primaire
    
        constructor(uneAutreValeur: String) : this(uneAutreValeur.length) { // Constructeur secondaire déléguant au primaire
            // Logique du constructeur secondaire
            println("Créé avec la chaîne : $uneAutreValeur")
        }
    
        constructor(valeur1: Int, valeur2: Int) : this(valeur1 + valeur2) { // Un autre constructeur secondaire
            // Logique
            println("Créé avec deux ints : $valeur1, $valeur2")
        }
    }
    

En l'absence de constructeur primaire, les constructeurs secondaires ne sont pas obligés de déléguer à d'autres constructeurs de la même classe (mais ils peuvent).

class ClasseSansPrimaire {

    constructor(valeur: Int) {
        println("Créé avec int : $valeur")
    }

    constructor(valeur: String) {
        println("Créé avec chaîne : $valeur")
    }
}