<
내부 클래스와 익명 클래스 차이
>
🌠다음 포스팅🌠

Spring IOC / DI - 의존성 주입 편
☄이전 포스팅☄

디자인 패턴 - 탬플릿 콜백 패턴
내부 클래스? 익명 클래스?

목차
내부클래스
내부 클래스의 종류
익명 클래스

내부클래스

내부 클래스안 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 이러한 내부 클래스는 외부 클래스에 대해 두 개의 클래스가 서로 긴밀한 관계를 맺고 있을 때 선언 가능하다.

외부 클래스 내부의 각각의 내부 클래스의 멤버들 간의 접근이 자유로우며 불필요한 클래스를 감춰서 코드 복잡성을 줄일 수 있다.

  1. 내부 클래스에서 외부 클래스의 멤버에 손쉽게 접근할 수 있다.

  2. 서로 관련 있는 클래스를 논리적으로 묶어서 표현함으로써, 코드의 캡슐화를 증가

  3. 외부에서는 내부 클래스에 접근할 수 없으므로, 코드의 복잡성을 줄일 수 있다.

class OutterClass{
    class InnerClass{ }
}

내부 클래스의 종류

익명 클래스

익명 클래스(anonymous class)란 다른 내부 클래스와는 달리 이름을 가지지 않는 클래스를 의미한다.

익명 클래스는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성하는 일회용 클래스이므로 생성자를 선언할 수도 없으며, 단 하나의 클래스나 단 하나의 인터페이스를 상속받거나 구현할 수 있다.

이러한 익명 클래스는 매우 제한적인 용도에 사용되며, 구현해야 하는 메소드가 매우 적은 클래스를 구현할 때 사용.

// 익명 클래스는 선언과 동시에 생성하여 참조변수에 대입함.
클래스이름 참조변수이름 = new 클래스이름(){
    // 메소드의 선언
};

Reference

Top
Foot