JAVA 에서, 클래스 정의부 안에, 또 다른 클래스 정의부를 넣을 수 있고, 이는 2 가지로 분류할 수 있습니다.


Normal Inner Class


// 클래스 정의부

class OuterClass{

class InnerClass{

...

}

}


// 클래스 객체 생성부

OuterClass outerInstance = new OuterClass(); // 먼저 OuterClass 의 인스턴스 생성

OuterClass.InnerClass innerInstance = outerInstance.new InnerClass(); // 생성된 OuterClass 의 인스턴스를 기반으로 생성


Static Inner Class


// 클래스 정의부

class OuterClass{

static class StaticInnerClass{

...

}

}


// 클래스 객체 생성부

OuterClass.StaticInnerClass staicInnerInstance = new OuterClass.StaticInnerClass(); // 직접 생성


by kkikkodev 2015. 9. 2. 20:38