본문 바로가기

자바의 정석 정리

자바의 정석 - 7.11 내부 클래스

7.11.1 내부 클래스

  • 두 클래스가 긴밀한 관계가 있을 때 사용
  • 내부 클래스에서 외부 크래스의 멤버를 쉽게 접근 가능
  • 캡슐화를 통해 코드의 복잡성을 낮춤
class A{
    class B{}
}

7.11.2 내부 클래스의 종류와 특징

  1. 인스턴스 클래스
  2. 스태틱 클래스
  3. 지역 클래스
  4. 익명 클래스

7.11.3 인스턴스 클래스

  • 외부 클래스의 인스턴스 멤버처럼 다뤄짐
  • 외부 클래스의 인스턴스 멤버들과 관련된 작업이 있을 경우 주로 사용
class A{
    class B{}
}

7.11.4 static 클래스

  • 외부 클래스의 static 멤버처럼 다뤄짐
  • static 메서드에서 사용될 목적으로 선언
class A{
    static class B{}
}

7.11.5 지역 클래스

  • 외부 클래스의 메서드나 초기화 블럭안에 선언
  • 선언된 영역 내부에서만 사용가능
  • 인스턴스 멤버와 static 멤버 모두 사용가능
class A{
    void methodA(){
        class B{}
    }
}

7.11.6 익명 클래스

  • 객체의 이름없는 일회용 클래스
  • 클래스의 선언과 객체의 생성 동시에 진행
b.addActionLinstener(new ActionListener(){
    public void actionPerformed(ActionEvene e){
    }
});