static inner class 는 외부 인스턴스 없이도 만들어질 수 있음 (외부 참조 없음)
static inner class 사용예
public Class Aaaa {
static Class Bbbb{
}
}
// 호출 시
Aaaa.Bbbb bbbb = new Aaaa.Bbbb();
<- Aaaa 인스턴스 생성 없이 바로 Bbbb 생성 가능
static이 아닌 class 선언 시 사용예
public Class Aaaa {
Class Bbbb{
}
}
//호출 시
Aaaa.Bbbb bbbb = new Aaaa().new Bbbb();
<- 이너클레스가 외부클래스를 참조하고 있어 반드시 외부클래스를 생성해야 내부클레스를 생성할 수 있음
내부 클래스는 대부분의 케이스가 static을 붙여서 만들어서 사용하는 것이 좋음!
내부 클래스로 사용하고 싶지 않은 경우, 별개의 클래스로 떼서 사용하는 것이 나음