美文网首页
Kotlin面向对象之嵌套类(Nested Classes)

Kotlin面向对象之嵌套类(Nested Classes)

作者: 已迁至知乎_此不再维护 | 来源:发表于2017-05-27 08:43 被阅读0次

    一个类可以嵌套在其他类的内部:

    class Outer {
        private val bar: Int = 1
        class Nested {
            fun foo() = 2
        }
    }
    
    val demo = Outer.Nested().foo() // == 2
    

    内部类(Inner classes)

    类可以被标记为inner以能够访问外部类的成员。 内部类可以引用外部类的对象:

    class Outer {
        private val bar: Int = 1
        inner class Inner {
            fun foo() = bar
        }
    }
    
    val demo = Outer().Inner().foo() // == 1
    

    匿名内部类(Anonymous inner classes)

    匿名内部类的实例使用对象表达式来创建:

    window.addMouseListener(object: MouseAdapter() {
        override fun mouseClicked(e: MouseEvent) {
            // ...
        }
                                                                                                                
        override fun mouseEntered(e: MouseEvent) {
            // ...
        }
    })
    

    如果对象是Java函数式接口的实例(即具有单个抽象方法的Java接口),则可以使用前缀为接口类型的lambda表达式来创建它。

    val listener = ActionListener { println("clicked") }

    相关文章

      网友评论

          本文标题:Kotlin面向对象之嵌套类(Nested Classes)

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