클래스 내에 선언되는 클래스
class A{
//...
}
class B{
//...
}
→
class A{
//....
class B{
//...
}
}
내부클래스 B는 외부클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않아야함
| 내부 클래스 | 특징 |
|---|---|
| 인스턴스 클래스 | 외부클래스의 멤버변수 선언위치에 선언, 외부클래스의 인스턴스멤버처럼 다루어짐 |
| 스태틱 클래스 | 외부클래스의 멤버변수 선언위치에 선언, 외부클래스의 static멤버처럼 다루어짐 |
| 지역 클래스 | 외부클래스의 메서드나 초기화블럭 안에 선언, 선언된 영역 내부에서만 사용 o |
| 익명 클래스 | 클래스의 선언과 객체의 생성을 동시에하는 이름없는 클래스 (일회용) |
class Outer{
class InstanceInner{} //인스턴스 클래스
static class StaticInner{} //스태틱 클래스
void myMethod(){
class LocalInner{} //지역 클래스
}
}