일반 (초보탈출 II) 내부클래스

황제낙엽 2003.05.20 18:33 조회 수 : 505 추천:140

sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

 

·미리보기 | 소스복사·
  1. class Outer // 포함하는 클래스   
  2. {   
  3.     int i = 1;   
  4.     static int si = 2;   
  5.        
  6.     Outer()   
  7.     {   
  8.         System.out.println("////////Outer()///////");   
  9.         Inner inner1 = new Inner(); // 아래와 동일   
  10.         Inner inner2 = this.new Inner();   
  11.         System.out.println( inner1.j );   
  12.         inner1.print();   
  13.      }   
  14.   
  15.     class Inner // 내부 클래스   
  16.     {   
  17.         int j = 3;   
  18.         int i = 100;   
  19.         // static int k; // 오류, 내부클래스에서는 static변수를 선언할 수 없다.   
  20.         void print()   
  21.         {   
  22.             System.out.println("/////Inner print()//////");   
  23.             System.out.println( i ); // 아래와 다름, 내부클래스의 맴버변수는 내부클래스내에서만 사용되는 지역변수의 의미를 갖는다.   
  24.             System.out.println( Outer.this.i ); //Outer객체의 i를 참조한다 (Outer.this : Outer객체자신)   
  25.             System.out.println( si );   
  26.             System.out.println( j );      
  27.          }   
  28.     }   
  29. }   
  30.   
  31. class InnerClassTest   
  32. {   
  33.     public static void main(String[] args)   
  34.     {    
  35.         Outer outer = new Outer();         
  36.         Outer.Inner in2 = outer.new Inner();   
  37.         System.out.println( "//////main()//////" );   
  38.         System.out.println("outer의 i :"+ outer.i );   
  39.         System.out.println("inner의 j :"+ in2.j);   
  40.     }   
  41. }