11.内部类

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([email protected])
        }
    }

}

匿名内部类
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() {

        }
    }
}

你可能感兴趣的:(11.内部类)