Whiteship's Note

local inner class의 예

Java : 2006. 11. 5. 19:01


소스코드 출처 http://dna.daum.net/technote/java/PrincipleOfJavaInternalForDeveloperEasyToLost

public class OuterClass {
   public int get(){
       int i = 9;
       int id = 99;
       int id2 = 99;
       final int id3 = 100000;

       class LocalInnerClass {
           int id = 100;

           LocalInnerClass(){
               System.out.println("LocalInnerClass");
           }

           int getId(){
               return id3 + id;
           }
       }

       LocalInnerClass lic = new LocalInnerClass();
       return id + lic.getId();
   }

   public static void main(String[] args){
       OuterClass outer = new OuterClass();
       System.out.println("id = " + outer.get());
       //결과 값은 "100000(id3) + 100(LocalInnerClass.id) + 99(OuterClass.get())" 인 100199가 나온다.
   }

}

분홍색으로 표시 된 부분의 id3 대신에 i 나 id2로 바꾸면 컴파일 에러가 발생합니다.

local에서 만들어진 class라고 해서 local에서 만들어진 지역 변수에 접근이 가능한 건 아니군요. 그런데 final로 선언된 것은 어떻게 접근이 가능한 것일까요..?

'Java' 카테고리의 다른 글

Reference Object 활용  (2) 2006.11.09
XML을 EXEL 파일로 바꾸기  (0) 2006.11.08
Enumeration & Iterator  (2) 2006.11.07
Auto (un)boxing은 -128~127  (4) 2006.11.07
탬플릿 클레스 만들기  (3) 2006.11.05
local inner class의 예  (0) 2006.11.05
객체지향의 구멍 static  (0) 2006.11.04
i++와 i=i+1 속도 비교  (0) 2006.11.02
Comparator를 사용하여 비교하기.  (0) 2006.11.02
Arrays.sort() & Collections.sort()  (3) 2006.11.02
What is Object?  (12) 2006.11.01
top

Write a comment.




: 1 : ··· : 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : ··· : 140 :