🔍 내가 배운 내용 요약
클래스 내부에 정의된 또 다른 클래스. 외부 클래스와 밀접한 연관이 있을 때 사용
종류 | 설명 | 특징 |
---|---|---|
인스턴스 이너 클래스 | 외부 클래스의 인스턴스 멤버처럼 동작 | 외부 객체 있어야 생성 가능 |
정적(static) 이너 클래스 | 정적 멤버처럼 동작 | 외부 객체 없이 사용 가능 |
지역 이너 클래스 | 메서드 내에서 선언 | 지역 변수처럼 제한적 범위 |
익명 이너 클래스 | 이름 없이 정의된 클래스 (주로 인터페이스 구현에 사용) | 1회성 구현, 람다처럼 사용 가능 |
Java
class Outer {
int outerNum = 10;
// 인스턴스 이너 클래스
class Inner {
void print() {
System.out.println("outerNum = " + outerNum);
}
}
// 정적 이너 클래스
static class StaticInner {
void show() {
System.out.println("Static inner class");
}
}
void useInner() {
// 지역 이너 클래스
class LocalInner {
void local() {
System.out.println("지역 이너 클래스");
}
}
LocalInner li = new LocalInner();
li.local();
}
}