·미리보기 | 소스복사·
- class Outer // 포함하는 클래스
- {
- int i = 1;
- static int si = 2;
- Outer()
- {
- System.out.println("////////Outer()///////");
- Inner inner1 = new Inner(); // 아래와 동일
- Inner inner2 = this.new Inner();
- System.out.println( inner1.j );
- inner1.print();
- }
- class Inner // 내부 클래스
- {
- int j = 3;
- int i = 100;
- // static int k; // 오류, 내부클래스에서는 static변수를 선언할 수 없다.
- void print()
- {
- System.out.println("/////Inner print()//////");
- System.out.println( i ); // 아래와 다름, 내부클래스의 맴버변수는 내부클래스내에서만 사용되는 지역변수의 의미를 갖는다.
- System.out.println( Outer.this.i ); //Outer객체의 i를 참조한다 (Outer.this : Outer객체자신)
- System.out.println( si );
- System.out.println( j );
- }
- }
- }
- class InnerClassTest
- {
- public static void main(String[] args)
- {
- Outer outer = new Outer();
- Outer.Inner in2 = outer.new Inner();
- System.out.println( "//////main()//////" );
- System.out.println("outer의 i :"+ outer.i );
- System.out.println("inner의 j :"+ in2.j);
- }
- }