0Pricing
Kotlin Academy · Ders

Anonim Nesneler

Satır içi uygulamalar

Anonim Nesneler, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Satır İçi Uygulamalar

Anonim nesne, yeni bir sınıfa ad vermeden bir sınıfın veya arayüzün örneğini oluşturur. object ifadesini kullanınız.

interface Greeter { fun greet(): String }

fun main() {
    val g = object : Greeter {
        override fun greet() = "Hi"
    }
    println(g.greet())
}

Arayüz Uygulama

Nesne ifadesi, gerektiği yerde bir veya daha fazla arayüzü uygulayabilir.

interface Clickable { fun click() }

fun main() {
    val button = object : Clickable {
        override fun click() = println("Clicked")
    }
    button.click()
}

Sınıf Üyelerini Geçersiz Kılma

Açık bir sınıfı anonim olarak alt sınıflandırabilir ve üyeleri geçersiz kılabilirsiniz.

open class Animal { open fun sound() = "..." }

fun main() {
    val cat = object : Animal() {
        override fun sound() = "Meow"
    }
    println(cat.sound())
}

Ek Durum Tutma

Anonim bir nesne, geçersiz kıldığı üyelerin ötesinde kendi özelliklerini de bildirebilir.

fun main() {
    val point = object {
        val x = 3
        val y = 4
    }
    println("${point.x}, ${point.y}")
}

Üst Türü Olmayan Nesne

Bir üst tür belirtmezseniz nesne, hızlı bir yerel gruplama için kullanışlı olan, üyelerden oluşan geçici bir paket olur.

fun main() {
    val config = object {
        val retries = 3
        val timeout = 30
    }
    println(config.retries)
}

Yerel Değişkenleri Yakalama

Anonim nesneler, statik iç içe sınıfların aksine, kapsayan kapsamdan değişkenleri yakalayabilir.

fun makeCounter(start: Int): () -> Int {
    var count = start
    val obj = object {
        fun next() = count++
    }
    return { obj.next() }
}

fun main() {
    val c = makeCounter(10)
    println(c())
    println(c())
}

Dinleyici Olarak

Yaygın bir kullanım, satır içi bir uygulamayı geri çağırma işlevi veya dinleyici olarak aktarmaktır.

interface OnDone { fun done(result: Int) }

fun compute(cb: OnDone) {
    cb.done(42)
}

fun main() {
    compute(object : OnDone {
        override fun done(result: Int) = println("Got $result")
    })
}

Anonim Bir Nesnenin Türü

Bir işlevden döndürüldüğünde, çıkarılan tür bildirilen üst türdür; üst tür yoksa Any olur. Ek üyeler yalnızca yerel olarak görünür.

interface Named { val name: String }

fun make(): Named = object : Named {
    override val name = "X"
}

fun main() {
    println(make().name)
}

Anonim Nesneler ve Lambda'lar

Tek yöntemli arayüzler için lambda daha kısadır; ancak birden çok üyeyi geçersiz kılmanız veya durum tutmanız gerektiğinde anonim nesneler gerekir.

interface Handler {
    fun onStart()
    fun onStop()
}

fun main() {
    val h = object : Handler {
        override fun onStart() = println("start")
        override fun onStop() = println("stop")
    }
    h.onStart()
    h.onStop()
}

Nesne İfadesi ve Nesne Bildirimi

Bir nesne ifadesi her kullanımda yeni bir örnek oluşturur. Bir nesne bildirimi (object Name {}) adlandırılmış bir tekil nesnedir. Benzer görünürler, ancak yaşam süreleri farklıdır.

object Singleton { val id = 1 }

fun main() {
    val fresh = object { val id = 2 }
    println(Singleton.id)
    println(fresh.id)
}

Kısa Bir Karşılaştırıcı

Anonim nesneler, tek seferlik karşılaştırıcılar veya stratejiler için kullanışlıdır.

fun main() {
    val cmp = object : Comparator<Int> {
        override fun compare(a: Int, b: Int) = b - a
    }
    val list = listOf(1, 3, 2).sortedWith(cmp)
    println(list)
}

Hızlı Kontrol

Anonim nesneler hakkındaki anlayışınızı kontrol ediniz.

Özet

Anonim nesneler hakkında şunları öğrendiniz:

  • object : Type {} ifadesi adsız bir örnek oluşturur.
  • Arayüzleri uygulayabilir, açık sınıfları alt sınıflandırabilir ve durum tutabilirler.
  • Kapsayan yerel değişkenleri yakalarlar.
  • Birden çok yöntemli geri çağırmalar için kullanınız; tek yöntemler için lambda'ları tercih ediniz.
interface Run { fun go() }

fun main() {
    val r = object : Run { override fun go() = println("go") }
    r.go()
}

Sıkça Sorulan Sorular

“Anonim Nesneler” dersi ücretsiz mi?

Evet — “Anonim Nesneler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“Anonim Nesneler” dersinde ne öğreneceğim?

Satır içi uygulamalar Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Anonim Nesneler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İç İçe Sınıflar
  2. İç Sınıflar
  3. Anonim Nesneler
  4. Yerel Sınıflar
← Kotlin Academy Sayfasına Dön