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()
'kotlin' 카테고리의 다른 글
SAM Conversions (0) | 2019.12.30 |
---|---|
Generic (0) | 2019.10.15 |
Kotlin 자세히 알아보기 -Higer-Order Function (0) | 2019.08.18 |
Kotlin 자세히 알아보기 - class 안에 class 정의하기, Anonymous (0) | 2019.08.15 |
Kotlin 자세히 알아보기 - apply, with, let, also, run (0) | 2019.08.15 |