728x90
클래스 내에 선언된 클래스
외부 클래스와 내부 클래스가 서로 연관되어 있을 때 사용한다.
장점
- 내부 클래스를 사용하면 외부 클래스의 멤버들에 쉽게 접근할 수 있다
- 코드가 간결해진다
- 외부적으로 불필요한 데이터를 감출 수 있어 캡슐화에 유용
내부 클래스의 종류
class Outer { // 외부 클래스
class Inner {
// 인스턴스 내부 클래스
}
static class StaticInner {
// 정적 내부 클래스
}
void run() {
class LocalInner {
// 지역 내부 클래스
}
}
}
종류 | 선언 위치 | 사용 가능한 변수 |
인스턴스 내부 클래스(instance inner class) | 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) | 외부 인스턴스 변수, 외부 전역 변수 |
정적 내부 클래스(static inner class) | 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) | 외부 전역 변수 |
지역 내부 클래스(local inner class) | 외부 클래스의 메서드나 초기화블럭 안에 선언 | 외부 인스턴스 변수, 외부 전역 변수 |
익명 내부 클래스(anonymous inner class) | 클래스의 선언과 객체의 생성을 동시에 하는 일회용 익명 클래스 | 외부 인스턴스 변수, 외부 전역 변수 |
728x90
'개발일지 > Java' 카테고리의 다른 글
Java 지역 내부 클래스 (0) | 2022.09.09 |
---|---|
Java 멤버 내부 클래스 (0) | 2022.09.09 |
Java 생성자(Constructor) (0) | 2022.09.08 |
Java 메서드 오버로딩(Method Overloading) (0) | 2022.09.08 |
Java 메서드 (Method) (0) | 2022.09.08 |