kotlin
Kotlin - Nested / Inner class
Gil
2019. 8. 25. 21:30
728x90
1. Nested class
Nested: 내포된 이라는 뜻으로, Class 안에 있는 일반 Class 가 있는 경우를 말한다.
class Outer {
class Nested {
val a = 1
}
}
java 로 Decompile해보면 아래와 같다.
static 처리가 되어 있어서 아래와 같이 Nested 클래스를 호출할 수 있다.
Outer.Nested()
※ 주의 사항
Kotlin에서 Nested Class는 내부적으로 Static 처리를 한다는 것이다.
Java에서 Nested Class를 선언하면 Static 이 아니란 걸 주의하면 된다.
(안드 개발시 Kotlin과 Java를 왔다갔다 하면서 사용할 일이 많아서 둘다 알아야 한다...)
2. Inner class
Java에서 Nested Class 선언하는 것과 비슷하다.
즉, static 처리를 하지 않기 위해 Inner 를 사용한다는 것
class Outer {
inner class Nested {
val a = 1
}
}
사용은 아래와 같다.
Outer().Inner()