Sobes.tech
Junior — Middle

Quels types de constructeurs sont implémentés dans la classe et en quoi diffèrent-ils?

sobes.tech IA

Réponse de l'IA

Dans la classe en Swift, les types de constructeurs (initialiseurs) suivants sont généralement implémentés :

  1. Initialiseur par défaut (default initializer) — créé automatiquement si toutes les propriétés ont des valeurs par défaut et qu'il n'y a pas d'autres initialiseurs.

  2. Initialiseur avec paramètres (initialiseur désigné) — l'initialiseur principal qui initialise toutes les propriétés de la classe. L'appel à d'autres initialiseurs dans la classe se fait via self.init.

  3. Initialiseurs de convenance (convenience initializer) — initialiseurs auxiliaires qui appellent l'initialiseur désigné. Utilisés pour simplifier la création d'objets avec différents ensembles de paramètres.

Différences :

  • Les initialiseurs désignés initialisent toutes les propriétés et appellent les initialiseurs de la superclasse.
  • Les initialiseurs de convenance appellent d'autres initialiseurs de la même classe et ne peuvent pas initialiser directement les propriétés.

Exemple :

class Person {
    var name: String
    var age: Int

    // Initialiseur désigné
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    // Initialiseur de convenance
    convenience init(name: String) {
        self.init(name: name, age: 0) // appel au désigné
    }
}

Ainsi, les initialiseurs offrent une flexibilité dans l'initialisation des objets avec différents paramètres et garantissent une initialisation correcte de toutes les propriétés.