Aké typy konštruktorov sa implementujú v triede a v čom sa líšia?
sobes.tech AI
Odpoveď od AI
V triede Swift sa zvyčajne implementujú nasledujúce typy konštruktorov (initializátorov):
-
Predvolený inicializátor (default initializer) — je automaticky vytvorený, ak majú všetky vlastnosti predvolené hodnoty a nie sú žiadne iné inicializátory.
-
Inicializátor s parametrami (designated initializer) — hlavný inicializátor, ktorý inicializuje všetky vlastnosti triedy. Volanie iných inicializátorov v triede sa vykonáva cez
self.init. -
Convenience inicializátory (convenience initializer) — pomocné inicializátory, ktoré volajú designated inicializátor. Používajú sa na zjednodušenie vytvárania objektov s rôznymi sadami parametrov.
Rozdiely:
- Designated inicializátory inicializujú všetky vlastnosti a volajú inicializátory supertriedy.
- Convenience inicializátory volajú iné inicializátory tej istej triedy a nemôžu priamo inicializovať vlastnosti.
Príklad:
class Person {
var name: String
var age: Int
// Designated inicializátor
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Convenience inicializátor
convenience init(name: String) {
self.init(name: name, age: 0) // volanie designated
}
}
Týmto spôsobom, konštruktory poskytujú flexibilitu pri inicializácii objektov s rôznymi parametrami a zabezpečujú správnu inicializáciu všetkých vlastností.