Sobes.tech
Junior — Middle

Welche Arten von Konstruktoren werden in der Klasse implementiert und worin unterscheiden sie sich?

sobes.tech KI

Antwort von AI

In der Swift-Klasse werden in der Regel die folgenden Arten von Konstruktoren (Initialisierer) implementiert:

  1. Standardinitialisierer (default initializer) — wird automatisch erstellt, wenn alle Eigenschaften Standardwerte haben und keine anderen Initialisierer vorhanden sind.

  2. Initialisierer mit Parametern (designated initializer) — der Hauptinitialisierer, der alle Eigenschaften der Klasse initialisiert. Der Aufruf anderer Initialisierer innerhalb der Klasse erfolgt über self.init.

  3. Bequeme Initialisierer (convenience initializer) — Hilfsinitialisierer, die den designated initializer aufrufen. Sie werden verwendet, um die Erstellung von Objekten mit unterschiedlichen Parametersätzen zu vereinfachen.

Unterschiede:

  • Designated Initialisierer initialisieren alle Eigenschaften und rufen die Initialisierer der Superklasse auf.
  • Convenience Initialisierer rufen andere Initialisierer derselben Klasse auf und können Eigenschaften nicht direkt initialisieren.

Beispiel:

class Person {
    var name: String
    var age: Int

    // Designated initializer
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    // Convenience initializer
    convenience init(name: String) {
        self.init(name: name, age: 0) // Aufruf des designated
    }
}

Auf diese Weise bieten Konstruktoren Flexibilität bei der Initialisierung von Objekten mit unterschiedlichen Parametern und gewährleisten eine korrekte Initialisierung aller Eigenschaften.