CodeBlanks Logo Icon CodeBlanks

Method

value class içinde metot tanımlamayı öğrenirsin.

value class metotları

Bir value class, normal sınıflar gibi metot içerebilir. Örnek: @JvmInline value class UserId(val id: String) { fun display() = println("User: $id") }. Metot, sarmalanan değere id özelliği ile erişir.

Value class içinde this sarmalanan değeri temsil eder. Metotlar uzantı (extension) olarak da eklenebilir. Bu, değere davranış katmanın temiz yoludur: tür güvenliği ve davranış tek tanımda birleşir. Çalışma zamanında metot çağrısı statik olarak çözümlenir; ek yük yoktur.

Metot ve iç erişim

Value class içindeki bir metot, sarmalanan değere doğrudan erişir. fun display() = println("User: $id") satırında id özelliği sarmalanan değerdir. Açıkça this.id de yazılabilir.

Metotlar dönüş değeri de döndürebilir: fun uppercase() = id.uppercase() yeni bir String döndürür. Value class metotları çalışma zamanında inline edildiği için çağrı ek yükü yoktur. Bu, küçük yardımcı metotları value class içine koymayı verimli kılar.

Uygulama UserId'ye display metodu ekle

@JvmInline value class UserId(val id: String) tanımla; içinde fun display() = println("User: $id") olsun. main içinde val u = UserId("U1") oluştur ve u.display() çağır.

Başlangıç kodu

Main.kt
// UserId değer sınıfını tanımla: display metodu ile
// display metodu: User: $id yazsın

fun main() {
    // UserId örneği oluştur ve display çağır
}

Örnek çözüm

Main.kt
@JvmInline
value class UserId(val id: String) {
    fun display() = println("User: $id")
}

fun main() {
    val u = UserId("U1")
    u.display()
}

Beklenen çıktı

User: U1

Soru ve cevaplar

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

1 metot parçalarını eşle

Kavram Anlamı
fun display() Metot
value class Sarmalayıcı
val id Alan
this.id İç erişim

2 Bir value class metot içerebilir mi?

  • Evet Doğru cevap
  • Hayır
  • Yalnızca static
  • Yalnızca getter

Açıklama: value class normal sınıf gibi metot içerebilir.

3 display gövdesini tamamla

Soru
@JvmInline
value class UserId(val id: String) {
    fun display() = println("User: $____")
}
Cevap
@JvmInline
value class UserId(val id: String) {
    fun display() = println("User: $id")
}

Açıklama: display id özelliğini yazdırır.

Orta seviye bölümündeki tüm dersler