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安卓开发