Sobes.tech
Junior — Middle

კლასში რა ტიპის კონსტრუქტორები ხორციელდება და რა განსხვავებაა მათ შორის?

sobes.tech AI

პასუხი AI-სგან

Swift sinfida 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. 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.