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:
-
Standardinitialisierer (default initializer) — wird automatisch erstellt, wenn alle Eigenschaften Standardwerte haben und keine anderen Initialisierer vorhanden sind.
-
Initialisierer mit Parametern (designated initializer) — der Hauptinitialisierer, der alle Eigenschaften der Klasse initialisiert. Der Aufruf anderer Initialisierer innerhalb der Klasse erfolgt über
self.init. -
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.