1.java中非静态内部类可以持有外部类的状态
2.kotlin中默认的内部类是静态内部类,可以用inner修饰变成非静态内部类
inner修饰前
class Outter{
class Inner{
}
}
fun main() {
val inner = Outter.Inner()
}
inner修饰后
class Outter{
inner class Inner{
}
}
fun main() {
val inner = Outter().Inner()
}
调用外部类成员属性
class Outter2{
val a: Int = 0
inner class Inner{
val a: Int = 5
fun hello(){
println(a)
println(this@Outter2.a)
}
}
}
匿名内部类
1.内部类的一种特殊情况
2.object:
interface OnClickListener{
fun onClick()
}
class View{
var onClickListener: OnClickListener? = null
}
fun main() {
val view = View()
view.onClickListener = object:OnClickListener {
override fun onClick() {
}
}
}
网友评论