
Java에서의 중첩 클래스는 아래와 같이 여러 종류로 나뉩니다.

일반적으로 중첩 클래스를 지칭할 땐 static을 사용하는 증첩 클래스와, Inner Class를 지칭하고, 아래와 같은 특징을 가지고 있습니다.
이를 Java 코드로 살펴보면 아래와 같습니다.

Inner Class 사용을 지양하자
Effective Java에 따르면 Inner Class에 대하여 아래와 같이 설명하고 있으며, 중첩 클래스를 사용할 경우
static class를 사용하는 방법을 권장합니다.
- 숨겨진 외부 클래스 정보를 가지고 있어, 참조 해지가 불가한 경우 메모리 누수 발생
- 직렬화 형태가 명확하게 정의되지 않아 직렬화에 있어 제한됨
Kotlin에서의 중첩 클래스는 아래와 같이 기본적으로 외부 클래스에 대한 직접 참조를 하지 않습니다.

만약, 외부 클래스에 대한 직접 참조가 필요할 경우 inner 키워드를 활용하여 다음과 같이 작성하면 됩니다.
