美文网首页
11.内部类

11.内部类

作者: 学吉他的袁先生 | 来源:发表于2020-07-28 15:07 被阅读0次

    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() {
    
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:11.内部类

          本文链接:https://www.haomeiwen.com/subject/vimfrktx.html