본문 바로가기

Java의 정석

내부 클래스(inner class)

내부 클래스는 클래스 내에 선언된 클래스이다.

 

한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다.

 

내부 클래스의 종류

내부 클래스 특징
인스턴스 클래스  - 외부 클래스의 멤버변수 선언위치에 선언하며 외부 클래스의 인스턴스 멤버처럼 다루어진다.
 - 외부 클래스의 인스턴스멤버들과 관련된 작업에 사용될 목적으로 선언된다.
스태틱 클래스  - 외부 클래스의 멤버변수 선언위치에 선언하며 외부 클래스의 static멤버처럼 다루어진다.
 - 외부 클래스의 static멤버, static메서드에서 사용될 목적으로 선언된다.
지역 클래스  - 외부 클래스의 메서드나 초기화블럭 안에 선언된다.
 - 선언된 영역 내부에서만 사용될 수 있다.
익명 클래스  - 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스이다.(일회용)

 

내부 클래스의 접근성

내부 클래스는 외부 클래스의 멤버변수와 같은 위치에 선언되며 같은 성질을 갖는다. 따라서 내부 클래스가 외부 클래스의 멤버와 같이 간주되고 인스턴스멤버와 static멤버 간의 규칙이 내부 클래스에도 똑같이 적용된다.

 

내부 클래스도 클래스이기 때문에 abstract나 final과 같은 제어자를 사용할 수 있고 private, protected와 같은 접근제어자도 사용이 가능하다.

'Java의 정석' 카테고리의 다른 글

디폴트 메서드와 static 메서드  (0) 2022.04.25
인터페이스의 장점  (0) 2022.04.22
인터페이스를 이용한 다형성  (0) 2022.04.21
인터페이스의 상속, 구현  (0) 2022.04.20
인터페이스(interface)  (0) 2022.04.19