0%

내부클래스

내부 클래스

  • 클래스안의 클래스
  • 장점
    • 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있음
    • 코드의 복잡성을 줄일 수 있음(캡슐화)
1
class A { // 외부클래스
2
  ...
3
  class B { // 내부클래스
4
    ...
5
  }
6
}

종류와 특징

  • 내부 클래스의 종류와 유효범위(scope)는 변수와 동일
  • 인스턴스 내부 클래스
    • 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스멤버처럼 다뤄짐. 주로 외부 클래스의 인스턴스멤버들과 관련된 작업에 사용될 목적으로 선언
  • Static 내부 클래스
    • 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다뤄짐. 주로 외부 클래스의 static멤버, 특히 static메서드에서 사용될 목적으로 선언
  • 지역 내부 클래스
    • 외부 클래스의 메서드나 초기화블럭안에 선언하며, 선언된 영역 내부에서만 사용될 수 있음
  • 익명클래스
    • 클래스의 선언관 객체의 생성을 동시에하는 이름없는 클래스(일회용)

내부클래스의 제어자와 접근성

  • 내부클래스의 제어자는 변수에 사용 가능한 제어자와 동일
  • 내부클래스에서 외부 클래스의 private멤버도 접근 가능

image

image

image