/*
* 정적 중첩 클래스
*/
class OuterS{
public static int a;
private int b;
static { a = 1;}
public OuterS() { b = 2;}
public void outerGinfo() {
System.out.println("- outerSinfo() -");
System.out.println("a : " + a );
System.out.println("b : " + b );
}
// 정적 중첩 클래스 시작.
static class InnerS {
public static int c;
private int d;
static { c = 3; }
public InnerS() { d = 4; }
public void InnerSinfo() {
System.out.println("- InnerSinfo() -");
System.out.println("a : " + a );
// System.out.println("b : " + b ); Error ! → 외부 클래스에있는 일반 멤버 사용불가.
// static이 붙어있는 멤버만 사용가능.
System.out.println("c : " + c );
System.out.println("d : " + d );
}
}
}
// 정적 + final 메서드.
class MySystem {
static final class Inner{
public void println(String message) {
System.out.println(message);
}
}
// out 변수에 Inner 함수 대입.
static final Inner out = new Inner();
}
// 메인 메서드.
public class Ex02Static {
public static void main(String[] args) {
OuterS.InnerS inner = new OuterS.InnerS();
MySystem.out.println("test");
}
}