[kotlin] Nested Class And Inner Class

2018. 6. 18. 02:20kotlin-이론

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 } }

중첩클래스와 다리 덮고있는 클래스의 객체화를 통해 감싸고 있는 클래스에 접근할 수 있다.

'kotlin-이론' 카테고리의 다른 글

[kotlin] Object Declarations  (0) 2018.06.18
[kotlin]Object Expression  (0) 2018.06.18
[kotlin]Data Class  (0) 2018.06.18
[kotlin] kotlin 강의 properties2  (0) 2018.06.17
[kotlin] kotlin 강의 properties1  (0) 2018.06.16