1.1.50.15. fejezet, Beágyazott és belső osztályok

Beágyazott osztály

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

Belső osztályok

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

Anonim belső osztályok

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