Static Inner Class (정적 내부 클래스)
- static 제한자를 사용하여 선언된 내부클래스
- 외부 클래스의 객체와 상관없이 독립적으로 사용될 수 있는 내부 클래스
- 외부클래스의 객체를 참조할 수 없으므로 외부클래스의 필드 또는 메소드 사용 불가능
- 외부클래스에 작성된 정적필드 및 정적메소드는 외부클래스를 참조하여 사용 가능
OuterTwo
public class OuterTwo {
private int outerNum;
public OuterTwo() {
}
public OuterTwo(int outerNum) {
super();
this.outerNum = outerNum;
}
public int getOuterNum() {
return outerNum;
}
public void setOuterNum(int outerNum) {
this.outerNum = outerNum;
}
public void outerDisplay() {
System.out.println("outerNum = " + outerNum);
InnerTwo innerTwo=new InnerTwo(100);
System.out.println("innerTwo.innerNum = "+innerTwo.innerNum);
innerTwo.innerDisplay();;
}
public static class InnerTwo {
private int innerNum;
public InnerTwo() {
}
public InnerTwo(int innerNum) {
super();
this.innerNum = innerNum;
}
public int getInnerNum() {
return innerNum;
}
public void setInnerNum(int innerNum) {
this.innerNum = innerNum;
}
public void innerDisplay() {
System.out.println("innerNum = " + innerNum);
}
}
}
OuterTwoApp
public class OuterTwoApp {
public static void main(String[] args) {
OuterTwo outerTwo = new OuterTwo(100);
outerTwo.outerDisplay();
System.out.println("==============================================================");
// 정적 내부클래스의 외부클래스의 객체에 종속되어 있지 않아 외부클래스외 다른 클래스에서
// 내부클래스를 사용하여 객체 생성 가능
InnerTwo innerTwo = new InnerTwo(200);
innerTwo.innerDisplay();
System.out.println("==============================================================");
}
}