Kotlin學習之-5.9 內部類
類可以嵌套在其他類中:
class Outer {
private val bar: Int = 1
class Nested {
fun foo() = 2
}
}
val demo = Outer.Nested().foo() // == 2
內部類
一個類可以被標記成inner
來表示可以訪問外部類的成員。內部類持有一個對外部類的引用。
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}
}
val demo = Outer().Inner().foo() // == 1
this
在兩種內部類中使用容易混淆,參見Qualified this expressions
匿名內部類
匿名內部類使用對象表達式來創建
window.addMouseListener(object: mouseAdapter() {
overfide fun mouseClicked(e: MouseEvent) {
// ...
}
overfide fun mouseEnterd(e: MouseEvent) {
}
}
如果一個對象是一個函數式的java接口的實例(例如,一個單一抽象函數的接口),你可以使用lamda表達式來創建,在接口的類型前面使用lambda表達式。
val listener = ActionLisener { println("clicked") }
PS,我會堅持把這個系列寫完,有問題可以留言交流,也關注專欄Kotlin for Android Kotlin安卓開發