Klassda qanday turdagi konstruktorlar amalga oshiriladi va ular qanday farq qiladi?
sobes.tech AI
AIdan javob
Swift sinfida odatda quyidagi turdagi konstruktorlar (initializatorlar) amalga oshiriladi:
-
Standart initializator (default initializer) — agar barcha xususiyatlar uchun standart qiymatlar bo‘lsa va boshqa initializatorlar bo‘lmasa, avtomatik ravishda yaratiladi.
-
Parametrli initializator (designated initializer) — asosiy initializator bo‘lib, u sinfning barcha xususiyatlarini initializatsiya qiladi. Sinf ichida boshqa initializatorlarni chaqirish
self.initorqali amalga oshiriladi. -
Qulay initializatorlar (convenience initializer) — yordamchi initializatorlar bo‘lib, ular designated initializatorni chaqiradi. Ular turli parametrlar to‘plami bilan obyekt yaratishni soddalashtirish uchun ishlatiladi.
Farqlar:
- Designated initializatorlar barcha xususiyatlarni initializatsiya qiladi va superklassning initializatorlarini chaqiradi.
- Convenience initializatorlar o‘z sinfidagi boshqa initializatorlarni chaqiradi va to‘g‘ridan-to‘g‘ri xususiyatlarni initializatsiya qila olmaydi.
Misol:
class Person {
var name: String
var age: Int
// Designated initializator
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Convenience initializator
convenience init(name: String) {
self.init(name: name, age: 0) // designated chaqiruv
}
}
Shu tarzda, konstruktorlar obyektlarni turli parametrlar bilan yaratishda moslashuvchanlikni ta'minlaydi va barcha xususiyatlarning to‘g‘ri initializatsiyasini kafolatlaydi.