Kotlin dilinde sınıflarda başlatıcılar hakkında bilgi ver.
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de, sınıflar birincil ve bir veya daha fazla ikincil yapıcıya sahip olabilir. Başlatıcılar, tanımlarından sonra sırasıyla yürütülen init kod bloklarıdır; bunlar, birincil yapıcı (varsa) veya ikincil yapıcıdan sonra yürütülür, eğer birincil yoksa.
Birincil Yapıcı
Doğrudan sınıf başlığında ilan edilir. Özellikleri başlatmak için kullanılan parametreleri içerebilir.
class User(name: String, age: Int) {
init {
// Bu blok, sınıf örneği oluşturulurken çalışır
println("Kullanıcı oluşturuldu: $name, $age")
}
}
İkincil Yapıcılar
constructor anahtar kelimesiyle ilan edilir ve her zaman aynı sınıftaki başka bir yapıcıya delegasyon yapmalıdır; ya birincil (bu this ile) ya da başka bir ikincil.
class User {
init {
// Bu blok, birincil yapıcı varsa ilk olarak çalışır
}
constructor(name: String) : this() {
// İkincil yapıcı 1
println("İsimle kullanıcı oluşturuldu: $name")
}
constructor(name: String, age: Int) : this(name) {
// İkincil yapıcı 2, ilk ikinciliği çağırır
println("İsim ve yaş ile kullanıcı oluşturuldu: $name, $age")
}
}
Yürütme sırası
- Birincil yapıcıdaki kod (parametreler varsa, kullanılırlar).
initblokları sırasıyla.- Çağrılan ikincil yapıcıdaki kod (delegasyondan sonra).
Yürütme sırasına örnek:
class Example {
init {
println("Init bloğu 1")
}
constructor(i: Int) {
println("İkincil yapıcı $i")
}
init {
println("Init bloğu 2")
}
}
fun main() {
Example(10)
}
Çıktı:
Init bloğu 1
Init bloğu 2
İkincil yapıcı 10
İkincil yapıcı çağrılırsa bile, init blokları her zaman onun gövdesinden önce yürütülür. Bu, nesnenin temel başlatmasının tamamlandığından emin olmayı sağlar, böylece ikincil yapıcıdaki özgü kod çalıştırılmadan önce.
Başlatıcılar, herhangi bir sınıf örneği oluşturulurken çalıştırılması gereken mantığı yürütmek için vazgeçilmezdir; hangi yapıcı kullanılırsa kullanılsın, örneğin giriş verilerini doğrulama veya nesnenin durumunu yapılandırma gibi işlemler için kullanılırlar.