კლასში რა ტიპის კონსტრუქტორები ხორციელდება და რა განსხვავებაა მათ შორის?
sobes.tech AI
პასუხი AI-სგან
Swift sinfida adətən aşağıdakı növ konstruktorlar (başlatıcılar) həyata keçirilir:
-
Varsayılan başlatıcı (default initializer) — bütün xüsusiyyətlər üçün standart dəyərlər varsa və başqa başlatıcılar yoxdursa, avtomatik yaradılır.
-
Parametrli başlatıcı (designated initializer) — əsas başlatıcıdır və bütün sinif xüsusiyyətlərini başlatır. Sinif daxilində digər başlatıcıların çağırılması
self.initvasitəsilə həyata keçirilir. -
Əlçatan başlatıcılar (convenience initializer) — köməkçi başlatıcılar olub, designated başlatıcıyı çağırır. Onlar müxtəlif parametr dəstləri ilə obyektin yaradılmasını sadələşdirmək üçün istifadə olunur.
Fərqlər:
- Designated başlatıcılar bütün xüsusiyyətləri başlatır və supersinifin başlatıcılarını çağırır.
- Convenience başlatıcılar digər başlatıcıları çağırır və birbaşa xüsusiyyətləri başlatmaq mümkün deyil.
Nümunə:
class Person {
var name: String
var age: Int
// Designated başlatıcı
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Convenience başlatıcı
convenience init(name: String) {
self.init(name: name, age: 0) // designated çağırış
}
}
Beləliklə, konstruktorlar obyektlərin müxtəlif parametrlərlə yaradılmasında elastiklik təmin edir və bütün xüsusiyyətlərin düzgün başlatılmasını təmin edir.