Sobes.tech
Junior — Middle

Sınıfta hangi tür yapıcılar uygulanır ve bunlar nasıl farklılık gösterir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Swift sınıfında genellikle aşağıdaki türde yapıcılar (başlatıcılar) uygulanır:

  1. Varsayılan başlatıcı (default initializer) — tüm özellikler varsayılan değerlere sahipse ve başka başlatıcılar yoksa otomatik olarak oluşturulur.

  2. Parametreli başlatıcı (designated initializer) — sınıfın tüm özelliklerini başlatan ana başlatıcıdır. Sınıf içindeki diğer başlatıcılar self.init aracılığıyla çağrılır.

  3. Uygun başlatıcılar (convenience initializer) — yardımcı başlatıcılar olup, designated başlatıcıyı çağırır. Farklı parametre setleriyle nesne oluşturmayı basitleştirmek için kullanılır.

Farklar:

  • Designated başlatıcılar tüm özellikleri başlatır ve üst sınıfın başlatıcılarını çağırır.
  • Convenience başlatıcılar aynı sınıftaki diğer başlatıcıları çağırır ve doğrudan özellikleri başlatamaz.

Örnek:

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ısı
    }
}

Bu şekilde, yapıcılar farklı parametrelerle nesne oluşturmayı esnek hale getirir ve tüm özelliklerin doğru şekilde başlatılmasını sağlar.