iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 19
0
Software Development

初探Kotlin系列 第 19

[Day 19] Nested and Inner 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

使用object expression建立匿名內部類別的實例

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

上一篇
[Day 18] Generics
系列文
初探Kotlin19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言