WM_CREATE

자바 중첩 클래스

2009/11/08 01:30 : 공부

1. 
중첩 클래스를 포함하고 있는 클래스를 컴파일하면 각 클래스마다 서로 다른 .class 파일이 생성된다. 중첩 클래스의 이름은 파일명에서 외부_클래스명$내부_클래스명.class가 된다. 익명 내부 클래스는 외부_클래스명$#.class가 된다. #은 1부터 시작하고 컴파일하는 동안 익명 내부 클래스의 수에 따라 증가한다.


2. 
내부 클래스는 이름을 가질 수 있고, public, protected, 패키지 접근 또는 private로 선언될 수 있으며, 다른 클래스의 멤버와 같은 수준으로 취급한다.


3. 
내부 클래스는 외부_클래스명.this 형태로 외부 클래스의 this 참조에 접근할 수 있다.


4. 
외부 클래스는 그 내부 클래스의 객체를 생성해야 한다. 다른 클래스의 내부 클래스의 객체를 만들기 위해서는 먼저 외부 클래스의 객체를 생성하고, 그 참조를 외부 클래스 타입의 변수에 대입한다(여기서는 ref로 하겠다). 그리고 다음과 같은 문장으로 내부 클래스의 객체를 생성한다.
OuterClassName.InnerClassName innerRef = ref.new InnerClassName();


5. 
중첩 클래스가 static으로 선언된 경우 일반 내부 클래스와는 달리, 그 객체를 만들 때 외부 클래스의 객체가 필요하지 않다. 그러너 내부 클래스는 그 외부 클래스의 static이 아닌 멤버에 접근할 수 없다.


'공부' 카테고리의 다른 글

자바 중첩 클래스  (0) 2009/11/08
cvTermCriteria  (0) 2009/08/13
OpenCV 설정  (0) 2009/08/13
최대공약수 최소공배수  (0) 2009/07/24
유클리드 호제법 - 최대 공약수  (0) 2009/07/24
유니코드 <-> 멀티바이트  (0) 2009/06/03
Posted by 스윙토끼 Trackback 0 Comment 0