CodeBlanks Logo Icon CodeBlanks

KClass

::class ve KClass ile sınıf bilgisi öğrenirsin.

KClass ile sınıf bilgisi

KClass, bir sınıfın çalışma zamanı bilgisini tutar. ::class sözdizimi ile bir türün KClass referansını alırsın. Üyeler, kurucular ve üst sınıflar hakkında bilgi verir.

Örnek: val kc = String::class; println(kc.simpleName). Bu, String yazdırır. kc.isData ile data class mı diye, kc.members ile üyeleri öğrenebilirsin. Reflection, çalışma zamanında türleri incelemek için kullanılır.

simpleName ve isData

KClass'ın simpleName özelliği sınıfın kısa adını verir. isData, isAbstract, isSealed gibi bayraklar sınıfın doğasını belirtir.

Örnek: data class User(val name: String). User::class.isData ifadesi true döner. User::class.simpleName ise "User" verir. Bu bayraklar, çalışma zamanında türün yapısına göre dallanma yapmanı sağlar.

Uygulama Person sınıfının adını yazdır

class Person(val name: String) tanımla. main içinde Person::class.simpleName sonucunu println ile yazdır.

Başlangıç kodu

Main.kt
// Person sınıfı: name özelliği
// main'de sınıfın adını reflection ile yazdır

Örnek çözüm

Main.kt
class Person(val name: String)

fun main() {
    println(Person::class.simpleName)
}

Beklenen çıktı

Person

Soru ve cevaplar

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

1 Bir sınıfın KClass referansını almak için hangi sözdizimi kullanılır?

  • getClass()
  • .class
  • classOf<>()
  • ::class Doğru cevap

Açıklama: Kotlin'de ::class ile KClass referansı alınır.

2 KClass referansını tamamla

Soru
val kc = String____
Cevap
val kc = String::class

Açıklama: ::class ile KClass referansı alınır.

3 KClass parçalarını eşle

Kavram Anlamı
String::class KClass referansı
simpleName Tür adı
isData Data class bayrağı
members Üyeler

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