Kotlin内部类

时间:2024-10-09 07:27:46
package . /** * @author:wangdong * @description: */ /**外部类*/ open class Outter{ val a: Int = 0 //默认静态内部类 //不能访问外部类的成员变量 class StaticInner{ fun hello(){ //println(a) } } //非静态内部类,关键字inner //可以访问外部类的成员变量 inner class Inner{ fun hello(){ println(a) println(this@Outter.a) } } } /**定义一个点击监听的接口*/ interface OnClickListener{ fun onClick() } /**定义一个View类*/ class View{ //可变的 var onClickListener: OnClickListener ?= null } fun main(args: Array<String>) { //静态内部类实例化 val staticInner = () //非静态内部类实例化 val inner = Outter().Inner() //注册view val view = View() //这边涉及到一个匿名内部类,就是没有名字的内部类,继承一下Outter类 //kotlin中匿名内部类,就和普通的类一样,可以继承一个类,实现多个接口 = object: Outter(),OnClickListener{ override fun onClick() { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. } } }