클래스에서 어떤 방법으로 중첩 클래스를 구현할 수 있나요?

중첩 클래스를 구현하는 방법에는 크게 두 가지가 있습니다. 첫 번째는 정적 중첩 클래스(Static Nested Class)를 사용하는 방법이고, 두 번째는 비정적 중첩 클래스(Non-static Nested Class)를 사용하는 방법입니다.

정적 중첩 클래스는 클래스 내부에 정적으로 선언되는 클래스이며, 외부 클래스의 인스턴스에 대한 종속성이 없습니다. 따라서 외부 클래스의 인스턴스 생성 없이 바로 접근할 수 있습니다. 정적 중첩 클래스는 외부 클래스의 멤버와 동일한 접근 수준을 가질 수 있으며, 외부 클래스의 private 멤버에도 접근할 수 있습니다.

public class OuterClass {
    // OuterClass의 멤버들

    // 정적 중첩 클래스
    public static class StaticNestedClass {
        // StaticNestedClass의 멤버들
    }
}

비정적 중첩 클래스는 클래스 내부에 일반 클래스처럼 선언되는 클래스입니다. 비정적 중첩 클래스는 외부 클래스의 인스턴스에 대한 종속성을 가지며, 외부 클래스의 인스턴스를 생성한 후에만 접근이 가능합니다. 비정적 중첩 클래스는 외부 클래스의 인스턴스 변수나 메서드에 접근할 수 있으며, 외부 클래스의 private 멤버에도 접근할 수 있습니다.

public class OuterClass {
    // OuterClass의 멤버들

    // 비정적 중첩 클래스
    public class InnerClass {
        // InnerClass의 멤버들
    }
}

중첩 클래스를 사용하면 코드를 더 모듈화할 수 있고, 외부 클래스와의 강한 응집력을 가질 수 있습니다. 하지만 중첩 클래스의 사용은 적절하게 고려되어야 하며, 클래스의 네스트(Nesting)가 깊어질수록 코드의 가독성이 저하될 수 있으므로 적절한 설계를 해야 합니다.

#Java #NestedClass