CodeBlanks Logo Icon CodeBlanks

KProperty

KProperty ile özellik bilgisi öğrenirsin.

KProperty ile özellik bilgisi

KProperty, bir özelliğin referansını tutar. ::propertyName ile alınır. name özelliğin adını, get(instance) değerini verir.

Örnek: class User(val name: String). val prop = User::name. prop.name ifadesi "name" döner. prop.get(User("Ayşe")) ise "Ayşe" verir. Bu kalıp, çalışma zamanında özellik değerini okumak için kullanılır.

get ile değer okuma

KProperty.get(instance), bir özellik değerini okur. Sınıf özellikleri için instance verilmelidir; üst düzey özellikler için gerekmez.

Örnek: val u = User("Ayşe"); val v = User::name.get(u). Bu, "Ayşe" döndürür. get, çalışma zamanında dinamik erişim sağlar; derleme zamanı erişiminden daha yavaştır ama esnektir.

Uygulama User özelliğini oku

class User(val name: String) tanımla. main içinde val u = User("Ayşe") oluştur, val prop = User::name referansını al ve println(prop.get(u)) çağrısını yaz.

Başlangıç kodu

Main.kt
// User sınıfı: name özelliği
// main'de u oluştur, prop referansı al, değeri yazdır

Örnek çözüm

Main.kt
class User(val name: String)

fun main() {
    val u = User("Ayşe")
    val prop = User::name
    println(prop.get(u))
}

Beklenen çıktı

Ayşe

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 KProperty referansını tamamla

Soru
class User(val name: String)
val prop = User____
Cevap
class User(val name: String)
val prop = User::name

Açıklama: ::name ile KProperty referansı alınır.

2 Bir sınıf özelliğinin değerini KProperty ile okumak için hangi metot kullanılır?

Main.kt
KProperty.get(instance) gives the value.
  • get(instance) Doğru cevap
  • call()
  • invoke()
  • apply()

Açıklama: get(instance) özellik değerini verir.

3 KProperty parçalarını eşle

Kavram Anlamı
User::name Özellik referansı
prop.name Özellik adı
prop.get(u) Değer okuma
val u = User(...) Örnek

İleri seviye bölümündeki tüm dersler