Sobes.tech
Junior — Middle

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):

  1. Predvolený inicializátor (default initializer) — je automaticky vytvorený, ak majú všetky vlastnosti predvolené hodnoty a nie sú žiadne iné inicializátory.

  2. 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.

  3. 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í.