static 중첩 클래스란 중첩 클래스에 static 키워드를 추가하여 정적 효과를 부여한 클래스를 말한다.
static 중첩 클래스의 일반적인 형태는 다음과 같다.
public class Outer {
static class Inner {//static 중첩 클래스(접근 제한 설정 자유)
}
}
일반 중첩 클래스처럼 접근제한도 설정이 가능하며, 클래스의 구성요소를 모두 가질 수 있다.
static 중첩 클래스를 활용하면 다음과 같이 소속을 표현할 수 있다.
public class Phone {
public static class Display {
}
public static class Button {
}
public static class Camera {
}
public static class Usim {
}
}
public class InnerClassExample03 {
public static void main(String[] args){
Phone.Display display = new Phone.Display();
Phone.Camera camera = new Phone.Camera();
Phone.Button button = new Phone.Button();
Phone.Usim usim = new Phone.Usim();
}
}
import Phone;
public class InnerClassExample04 {
public static void main(String[] args){
//클래스를 Import 하여 생략할 수도 있다.
Display display = new Display();
Camera camera = new Camera();
Button button = new Button();
Usim usim = new Usim();
}
}
물론 각자 외부 클래스로 구현해도 되지만 위와 같이 구성하여 Display, Camera, Button, Usim이 Phone의 구성요소들임을 표현할 수 있다. static이기 때문에 직접 접근하여 사용도 가능하다.