개발/Java

Java에서의 내부 클래스

ju_ni_ 2023. 7. 19. 10:31
반응형

오늘은 자바에서 중요한 개념 중 하나인 '내부 클래스'에 대해 이야기하려 합니다. 클래스 내부에 또 다른 클래스가 있는 이상한 구조, 과연 어떤 이유에서 이런 구조를 사용하는지, 어떤 이점이 있는지 함께 알아봅시다.

 

 

내부 클래스란?

 

내부 클래스는 말 그대로 클래스 안에 선언된 또 다른 클래스를 의미합니다. 이런 구조에서 바깥에 위치한 클래스를 '외부 클래스', 그 내부에 선언된 클래스를 '내부 클래스'라고 부릅니다. 그럼 외부 클래스와 내부 클래스의 관계에 대해 좀 더 자세히 알아봅시다.

 

 

외부 클래스와 내부 클래스의 관계

 

외부 클래스가 메모리에 할당된 후에야 내부 클래스를 객체화할 수 있습니다. , 내부 클래스는 외부 클래스의 필드처럼 동작합니다. 내부 클래스는 외부 클래스의 필드에 자유롭게 접근할 수 있어 코드의 복잡성을 줄이고 캡슐화를 더욱 강화할 수 있습니다.

 

예를 들어 아래의 예시코드를 살펴봅시다.

 

class OuterClass {
    int outerField = 10;

    class InnerClass {
        void innerMethod() {
            System.out.println("외부 클래스의 필드 값: " + outerField);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        OuterClass outerObject = new OuterClass();
        OuterClass.InnerClass innerObject = outerObject.new InnerClass();
        innerObject.innerMethod(); // 출력 : 외부 클래스의 필드 값: 10
    }
}

 

위 코드를 실행하면, "외부 클래스의 필드 값: 10"이 출력됩니다. 이처럼 내부 클래스 InnerClass는 외부 클래스 OuterClass의 필드 outerField에 쉽게 접근할 수 있습니다.

 

 

내부 클래스의 장점

 

내부 클래스를 사용하면 몇 가지 이점이 있습니다:

 

  • 캡슐화 강화 : 내부 클래스는 외부 클래스에 종속적이므로, 외부에서 접근을 제한하여 캡슐화를 강화할 수 있습니다.
  • 증가된 가독성 및 유지보수 : 관련된 클래스를 묶어 주므로 코드의 가독성을 높이고 유지보수를 쉽게 합니다.
  • 클래스의 논리적 그룹핑 : 내부 클래스는 그것을 감싸고 있는 외부 클래스와 강하게 관련되어 있기 때문에, 논리적으로 클래스를 그룹화하는 데 도움이 됩니다.

 

 

내부 클래스는 클래스의 구조를 보다 유연하게 만들어주며, 캡슐화를 강화하고 코드의 복잡성을 줄일 수 있는 도구입니다. 특히 내부 클래스를 활용하면 외부 클래스의 멤버에 쉽게 접근할 수 있어, 객체 지향 프로그래밍을 보다 효율적으로 할 수 있습니다.

반응형