kotlin-이론
[kotlin] Nested Class And Inner Class
sang_hoony
2018. 6. 18. 02:20
Nested Class And Inner Class
Nested Class(중첩 클래스)
중첩 클래스는 클래스안에 한개의 클래스를 또 선언하는 것을 말한다.
fun main(args: Array<String>) {
println(OuterClass.InnerClass().foo()) } class OuterClass{ var bar:Int = 2 class InnerClass{ fun foo() = 2 } }
이와 같이 사용할 수 있는데 덮고 있는 클래스의 멤버에는 도달 할 수 없는 것 같다. 따로 값을 전해주고 싶다면 생성자를 통해 전해주어야 한다.
Inner Class(내부 클래스)
내부 클래스는 클래스안에 한개의 클래스를 또 선언하는 것을 말한다. 하지만 위와 달리 덮고 있는 클래스의 멤버 변수에 접근할 수 있다.
fun main(args: Array<String>) { println(OuterClass().InnerClass().foo()) } class OuterClass{ var bar:Int = 2 class InnerClass{ fun foo() = bar } }
중첩클래스와 다리 덮고있는 클래스의 객체화를 통해 감싸고 있는 클래스에 접근할 수 있다.