Sobes.tech
Junior — Middle

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:

  1. 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.

  2. 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.init vasitəsilə həyata keçirilir.

  3. Ə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.