【24】kotlin 内部类 匿名内部类

依然范特西╮ 提交于 2020-08-04 18:54:36
package com.yzdzy.kotlin.chapter4.innerclass

class Outter {
    val a: Int = 0

    //静态内部类
    class Inner {

    }

    //非静态内部类
    inner class Inner2 {
        fun hello() {
            println(a)
            //Outter 调用成员的a   相当于java得InnerClassJava.this
            println(this@Outter.a)
        }
    }
}

interface OnClickLisenter {
    fun onClick()
}

class View {
    var onClickLisenter: OnClickLisenter? = null
}

fun main(args: Array<String>) {
    var inner = Outter.Inner()
    val inner2 = Outter().Inner2()

    val view = View()
    //匿名内部类
    view.onClickLisenter = object : OnClickLisenter {
        override fun onClick() {
            TODO("Not yet implemented")
        }
    }



}

内部类

  • 定义在类内部的类

  • 与成员有相似的访问控制

  • 默认是静态内部类,非静态用inner关键字

匿名内部类

  • 没有定义名字的内部类

  • 类名编译时申城,类似Outter$1.class

  • 可继承父类。实现多个接口 与java注意区别  java 只能集成一个类或者实现一个接口

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!