Sobes.tech
Junior — Middle

Koje tipove konstruktora implementira klasa i po čemu se razlikuju?

sobes.tech АИ

Одговор од АИ

У класи у Swift-у обично се реализују следећи типови конструктора (иницијализатора):

  1. Подразумевани иницијализатор (default initializer) — аутоматски се креира ако све особине имају подразумеване вредности и нема других иницијализатора.

  2. Иницијализатор са параметрима (designated initializer) — главни иницијализатор који иницијализује све особине класе. Позив других иницијализатора унутар класе се врши преко self.init.

  3. Користни иницијализатори (convenience initializer) — помоћни иницијализатори који позивају designated иницијализатор. Користе се за поједностављивање креирања објеката са различитим скуповима параметара.

Разлике:

  • Designated иницијализатори иницијализују све особине и позивају иницијализаторе суперкласе.
  • Convenience иницијализатори позивају друге иницијализаторе исте класе и не могу директно иницијализовати особине.

Пример:

class Person {
    var name: String
    var age: Int

    // Designated иницијализатор
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    // Convenience иницијализатор
    convenience init(name: String) {
        self.init(name: name, age: 0) // позив на designated
    }
}

Овим путем, конструктори пружају флексибилност у иницијализацији објеката са различитим параметрима и гарантују исправну иницијализацију свих особина.