innerClass_Ex4
Posted 2015. 4. 10. 15:52package chap10;
class Outer{
int iv = 10;
int iv2 = 30;
class InstanceInner{ // 인스턴스 내부클래스
int iv = 100;
void method1(){ // 인스턴스 내부클래스의 멤버 메서드
System.out.println("iv =" + iv);
System.out.println("this.iv=" + this.iv); // 100
// 외부클래스 멤버 접근 방법
System.out.println("Outer.iv=" + Outer.this.iv); // 10
System.out.println("iv2=" + iv2); // 30
}
}
static class StaticInner{
int iv = 200;
static int cv = 300;
}
void myMethod(){
class LocalInner{
int iv = 400;
}
LocalInner linner = new LocalInner(); // 반드시 객체 생성을 해야 사용 할 수 있다.
System.out.println(linner.iv);
}
}
public class InnerEx4 {
public static void main(String[] args) {
Outer oc = new Outer();
// 내부클래스의 타입 : 외부클래스. 내부클래스
Outer.InstanceInner ii = oc.new InstanceInner();
System.out.println("ii.iv = " + ii.iv); // 100
// Static 내부클래스 클래스멤버 접근방법
System.out.println("Outer.StaticInner.cv :" + Outer.StaticInner.cv); // 300
// Static 내부클래스 인스턴스 멤버 => 객체화 필요
Outer.StaticInner os = new Outer.StaticInner();
System.out.println("os.iv = " + os.iv);
oc.myMethod();
// 인스턴스내부클래스의 메서드 호출
Outer.InstanceInner ot = oc.new InstanceInner();
ot.method1(); // 100
}
}
'Java !!!' 카테고리의 다른 글
StringBuffer_Ex2 (0) | 2015.04.10 |
---|---|
StringBuffer (0) | 2015.04.10 |
innerClass_Ex3 (0) | 2015.04.10 |
innerClass_Ex2 (0) | 2015.04.10 |
enum (0) | 2015.04.10 |
- Filed under : Java !!!