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

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

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 只能集成一个类或者实现一个接口

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章