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:
-
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.
-
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.initaracılığıyla çağrılır. -
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.