innerClass_Ex2
package chap10;
public class InnerEx2 {
class InstanceInner{}
static class StaticInner{}
InstanceInner iv = new InstanceInner();
static StaticInner cv = new StaticInner();
static void staticMethod(){
StaticInner obj = new StaticInner();
// 클래스 멤버에서 인스턴스 내부 클래스의 객체화는 반드시 외부클래스의 객체화 후 가능 하다.
// InstanceInner obj2 = new InstanceInner(); // 에러!!
InnerEx2 outer = new InnerEx2();
InstanceInner obj2 = outer.new InstanceInner();
}
void instanceMethod(){
StaticInner obj = new StaticInner();
InstanceInner obj2 = new InstanceInner();
// myMethod()의 지역내부클래스는 다른메서드에서 사용 불가
// LocalInner lv = new LocalInner();
}
void myMethod(){
class LocalInner{} // 메서드 내부 클래스다. 밖에서 사용 불가.
LocalInner iv = new LocalInner();
}
public static void main(String[] args) {
}
}