inner Class 를 통해서 알아야할 것 : Nested class 와 모습은 같지만( 아우터 클래스 내부에 중첩적으로 클래스가 선언되어서 사용되고있다.) Inner class 의 인스턴스는 (Nested class 와는 다르게) Outer class 의 인스턴스에 완전히 소속된다.

내부 클래스의 인스턴스를 생성하러면
class Outer {
val outerVal = "test"
fun outerPrint() = print(outerVal)
inner class NestedClass {
fun hello() {
val helloFunInner = this@Outer.outerVal
println(helloFunInner)
}
}
}
fun main(args: Array<String>) {
val instance: Outer = Outer()
val innerInstance : Outer.NestedClass = instance.NestedClass()
innerInstance.hello()
}
0