Kotlin面向對象之嵌套類(Nested Classes)

一個類可以嵌套在其他類的內部:

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") }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,754評論 18 399
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • Java 內部類 分四種:成員內部類、局部內部類、靜態內部類和匿名內部類。 1、成員內部類: 即作為外部類的一個成...
    ikaroskun閱讀 1,249評論 0 13
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,088評論 0 4
  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,687評論 0 11