Koje tipove konstruktora implementira klasa i po čemu se razlikuju?
sobes.tech АИ
Одговор од АИ
У класи у Swift-у обично се реализују следећи типови конструктора (иницијализатора):
-
Подразумевани иницијализатор (default initializer) — аутоматски се креира ако све особине имају подразумеване вредности и нема других иницијализатора.
-
Иницијализатор са параметрима (designated initializer) — главни иницијализатор који иницијализује све особине класе. Позив других иницијализатора унутар класе се врши преко
self.init. -
Користни иницијализатори (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
}
}
Овим путем, конструктори пружају флексибилност у иницијализацији објеката са различитим параметрима и гарантују исправну иницијализацију свих особина.