Welke soorten constructors worden geïmplementeerd in de klasse en waarin verschillen ze?
sobes.tech AI
Antwoord van AI
In de Swift-klasse worden doorgaans de volgende typen constructors (initializers) geïmplementeerd:
-
Standaardin initializer (default initializer) — wordt automatisch aangemaakt als alle eigenschappen standaardwaarden hebben en er geen andere initializers zijn.
-
Geselecteerde initializer (designated initializer) — de hoofdinitialiser die alle eigenschappen van de klasse initialiseert. Het aanroepen van andere initializers binnen de klasse gebeurt via
self.init. -
Gemakkelijke initializers (convenience initializer) — hulpfuncties die de designated initializer aanroepen. Ze worden gebruikt om het maken van objecten met verschillende sets parameters te vereenvoudigen.
Verschillen:
- Designated initializers initialiseren alle eigenschappen en roepen de initializers van de superklasse aan.
- Convenience initializers roepen andere initializers van dezelfde klasse aan en kunnen eigenschappen niet rechtstreeks initialiseren.
Voorbeeld:
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) // aanroep van de designated
}
}
Op deze manier bieden constructors flexibiliteit bij het initialiseren van objecten met verschillende parameters en garanderen ze een correcte initialisatie van alle eigenschappen.