0%
내부 클래스
- 클래스안의 클래스
- 장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있음
- 코드의 복잡성을 줄일 수 있음(캡슐화)
1 | class A { |
2 | ... |
3 | class B { |
4 | ... |
5 | } |
6 | } |
종류와 특징
- 내부 클래스의 종류와 유효범위(scope)는 변수와 동일
- 인스턴스 내부 클래스
- 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스멤버처럼 다뤄짐. 주로 외부 클래스의 인스턴스멤버들과 관련된 작업에 사용될 목적으로 선언
- Static 내부 클래스
- 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다뤄짐. 주로 외부 클래스의 static멤버, 특히 static메서드에서 사용될 목적으로 선언
- 지역 내부 클래스
- 외부 클래스의 메서드나 초기화블럭안에 선언하며, 선언된 영역 내부에서만 사용될 수 있음
- 익명클래스
- 클래스의 선언관 객체의 생성을 동시에하는 이름없는 클래스(일회용)
내부클래스의 제어자와 접근성
- 내부클래스의 제어자는 변수에 사용 가능한 제어자와 동일
- 내부클래스에서 외부 클래스의 private멤버도 접근 가능