Object expression
- Kotlin kursu
- Orta seviye
- Ders 32/116
- 5 dk
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
// ClickListener arabirimi tanımı
// main içinde anonim nesne ile uygula
// onClick çağrısı ve yazdırÖrnek çözüm
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
val listener = ____ : ClickListener {
override fun onClick() = "tıklandı"
}
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.