Primary constructor
- Kotlin kursu
- Orta seviye
- Ders 1/116
- 5 dk
Primary constructor ve init bloğunu öğrenirsin.
Primary constructor
Kotlin'de primary constructor, sınıf başlığında parantez içinde tanımlanır. Parametreleri val veya var ile işaretleyerek doğrudan özellik yapabilirsin.
Örnek: class User(val name: String). Burada name hem yapıcı parametresi hem de sınıf özelliğidir. Gövde init bloğuyla başlar; ilk değer atamaları burada yapılır. Kısa ve okunaklı bir tanım sağlar.
init bloğu
init bloğu, sınıf örneği oluşturulurken çalışan koddur. Primary constructor'ın gövdesi olarak düşünülebilir. Birden fazla init bloğu yazılabilir; yukarıdan aşağıya sırayla çalışır.
Örnek: class User(val name: String) { init { println("Hazır: $name") } }. Özellikler zaten atanmış olduğu için init içinde güvenle kullanılabilir. Parametre doğrulama ve yan etkiler burada yapılır.
Uygulama User sınıfını tanımla
User adında bir sınıf tanımla. Primary constructor bir val name: String parametresi alsın. Bir init bloğu ekle; içinde println("Oluşturuldu: $name") yaz. main içinde bir User örneği oluştur ve name özelliğini yazdır.
Başlangıç kodu
// User sınıfı tanımı
// primary constructor: val name: String
// init bloğunda yazdır
// main içinde örnekle ve yazdırÖrnek çözüm
class User(val name: String) {
init {
println("Oluşturuldu: $name")
}
}
fun main() {
val u = User("Ayşe")
println(u.name)
}Beklenen çıktı
Oluşturuldu: Ayşe Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi geçerli bir primary constructor tanımıdır?
- function User(name: String)
- class User(val name: String) Doğru cevap
- User class { name: String }
- def User(name):
Açıklama: class adı, parantez içinde val ile özellik parametresi primary constructor tanımıdır.
2 Sınıf gövdesini aç
class User(val name: String) ____
init { println(name) }
}
class User(val name: String) {
init { println(name) }
}
Açıklama: Süslü parantez sınıf gövdesini başlatır.
3 Primary constructor bölümlerini eşle
| Kavram | Anlamı |
|---|---|
class User |
Sınıf başlığı |
(val name: String) |
Parametre listesi |
init { ... } |
İlk değer bloğu |
val name |
Özellik parametresi |