CodeBlanks Logo Icon CodeBlanks

Object expression

object: ile anonim nesne oluşturmayı öğrenirsin.

object expression

Bir object expression, bir arabirimi veya sınıfı ad vermeden uygulayan anonim bir nesnedir. object : Type { ... } biçiminde yazılır. Tek seferlik uygulamalar için uygundur.

Örnek: val listener = object : ClickListener { override fun onClick() = "tıklandı" }. Burada ClickListener arabirimini uygulayan isimsiz bir nesne oluşturulur. Bu nesne bir değişkene atanır ve daha sonra kullanılır. Sınıf tanımlamadan hızlı bir uygulama sağlar; Java'daki anonim iç sınıflara benzer.

ClickListener arabirimi

Bir object expression, en sık bir arabirimi (interface) uygulamak için kullanılır. Arabirimin tüm metotları override edilir.

Örnek: interface ClickListener { fun onClick(): String }. Bu arabirimi uygulamak için: val l = object : ClickListener { override fun onClick() = "tıklandı" }. l.onClick() çağrısı tıklandı döndürür. object expression, yeni bir sınıf dosyası açmadan tek seferlik uygulama sağlar. Arabirim birden çok metot içeriyorsa hepsini override etmelisin.

Uygulama ClickListener uygulayan anonim nesne

ClickListener adında bir arabirim tanımla; içinde fun onClick(): String metodu olsun. main içinde val listener = object : ClickListener { override fun onClick() = "tıklandı" } biçiminde anonim bir nesne oluştur ve println(listener.onClick()) ile sonucu yazdır.

Başlangıç kodu

Main.kt
// ClickListener arabirimi tanımı
// main içinde anonim nesne ile uygula
// onClick çağrısı ve yazdır

Örnek çözüm

Main.kt
interface ClickListener {
    fun onClick(): String
}

fun main() {
    val listener = object : ClickListener {
        override fun onClick() = "tıklandı"
    }
    println(listener.onClick())
}

Beklenen çıktı

tıklandı

Soru ve cevaplar

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

1 object expression'ı tamamla

Soru
val listener = ____ : ClickListener {
    override fun onClick() = "tıklandı"
}
Cevap
val listener = object : ClickListener {
    override fun onClick() = "tıklandı"
}

Açıklama: object : Type anonim nesne oluşturur.

2 object expression parçalarını eşle

Kavram Anlamı
object : ClickListener Anonim nesne
override fun onClick Metot uygulama
val l = object Atama
"tıklandı" Dönüş değeri

3 <strong>object expression</strong> ne zaman tercih edilir?

  • Tek seferlik anonim bir uygulama gerektiğinde Doğru cevap
  • Birden çok örnek oluşturmak gerektiğinde
  • Yeni bir sınıf dosyası açmak istediğinde
  • Soyut sınıf açmak istediğinde

Açıklama: object expression tek seferlik anonim uygulama sağlar.

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