다른 package에 있는 클래스, 즉 com.jidolstar.comp1에 Comp1클래스와 com.jidolstar.comp2에 Comp2클래스가 있다고 가정하자.
위의 2개 Class는 다음과 같은 관계와 조건을 가진다.
Comp1, Comp2 두 클래스는 다른 package에 있다.
Comp2는 Comp1을 객체로 생성하여 Comp1에서 정의한 ns_var:String 변수를 참고할 수 있게 하고자 한다.
Comp1를 Application에서 객체를 생성해서 Comp1의 변수인 ns_var를 참고할 수 없다.
위 조건을 만족하기 위한 접근자(public,private와 같은)를 무엇으로 해야할지 생각해보자. 첫번째, internal : 일단 두 Class가 다른 package에 있으므로 internal로 해서는 안된다. 두번째, private : ns_var를 private로 하면 Comp1 클래스에서만 참고할 수 있으므로 위 조건을 만족할 수 없다. 세번째, protected : 상속관계가 아니므로 protected를 사용하면 안된다. 네번째, public : ns_var를 Comp2외에 다른 곳에서 참고가 불가능하므로 public으로도 안된다.
헉.... 우리가 잘 알고 있는 internal, private, protected, public 모든 접근자로는 위의 조건을 만족시킬 수 없다. 이런 경우에 해결할 수 있는 방법이 바로 namespace이다. 따로 설명은 안하겠다. 다음 예제를 보고 이해했으면 한다. 사실 설명하기 귀찮아서 ㅡㅡ; 결과는 Debug모드에서 Console창에서 This is a namespace example 문자이 나오는 것이 전부이다. ^^
Tracked from 영원의 헤아림 | 2008년 06월 20일 13시 49분 | DEL
TitleWindow 입니다 ;) Flex에서 팝업용도로 많이 쓰는 TitleWindow이라는 클래스가 있습니다. TitleWindow의 구현코드를 보신 분은 아시겠지만 TitleWindow 에는 그렇게 많은 코드가 있지는 않습니다. (오히려 뭐가 이렇게 없어! 할 정도) 저도 상당히 의아했습니다. 주석을 빼면 정말 몇줄 안되는 코드였기 떄문이죠. 그 이유는 TitleWindow는 Panel을 상속해서 만들었는데 실제 TitleWindow에서 필요한..