Sinifdə hansı növ konstruktorlar həyata keçirilir və onlar necə fərqlənir?
sobes.tech Süni İntellekt
AI-dan cavab
Swift sinifində 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. Müxtəlif parametrlər 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 eyni sinifdəki 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ış
}
}
Bu şəkildə, konstruktorlar obyektlərin müxtəlif parametrlərlə yaradılmasını elastik edir və bütün xüsusiyyətlərin düzgün başlatılmasını təmin edir.