/*
* 일반 중첩 클래스
*/
class OuterG{
public static int a;
private int b;
static { a = 1;}
public OuterG() { b = 2;}
public void outerGinfo() {
System.out.println("- outerGinfo() -");
System.out.println("a : " + a );
System.out.println("b : " + b );
}
// 중첩 클래스 시작.
class InnerG {
// public static int c; Error ! static 선언불가. → 외부 클래스 객체가 항상 있어야되기 때문.
private int d;
public InnerG() { d= 4; }
public void InnerGinfo() {
System.out.println("- InnerGinfo() -");
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("d : " + d);
}
}
}
// 메인 함수 시작.
public class Ex01General {
public static void main(String[] args) {
OuterG outer = new OuterG();
outer.outerGinfo();
System.out.println();
// InnerG inner = new InnerG(); Error!
OuterG.InnerG oi = outer.new InnerG();
oi.InnerGinfo();
}
}