Ce tipuri de constructori sunt implementate în clasă și în ce diferă?
sobes.tech AI
Răspuns de la AI
În clasa Swift, de obicei, se implementează următoarele tipuri de constructori (inițializatori):
-
Inițializator implicit (default initializer) — se creează automat dacă toate proprietățile au valori implicite și nu există alți inițializatori.
-
Inițializator cu parametri (designated initializer) — inițializatorul principal care inițializează toate proprietățile clasei. Apelarea altor inițializatori în interiorul clasei se face prin
self.init. -
Inițializatori convenabili (convenience initializer) — inițializatori auxiliare care apelează inițializatorul desemnat. Sunt folosiți pentru a simplifica crearea obiectelor cu seturi diferite de parametri.
Diferențe:
- Inițializatorii desemnați initializează toate proprietățile și apelează inițializatorii superclasei.
- Inițializatorii convenabili apelează alți inițializatori ai aceleiași clase și nu pot inițializa direct proprietățile.
Exemplu:
class Person {
var name: String
var age: Int
// Inițializator desemnat
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Inițializator convenabil
convenience init(name: String) {
self.init(name: name, age: 0) // apel la desemnat
}
}
Astfel, constructorii oferă flexibilitate în inițializarea obiectelor cu parametri diferiți și asigură inițializarea corectă a tuturor proprietăților.