티스토리 뷰
1. 중첩 클래스
- 클래스의 효율적인 관리를 위한 하나의 형식
- Outer class의 멤버를 Inner class가 직접 접근 가능, 반대는 불가 (scope)
- Outer class에서 Inner class를 접근하기 위해 instance 생성
- Inner class static 멤버 사용 불가
class Outer { // outer class
private int x = 100;
public void aaa(){}
class Inner { // inner class
private int y = 200;
public void bbb(){
// Outer의 멤버를 사용할 수 있다.
aaa();
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
}
public class T1 {
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner i = o.new Inner();
}
}
2. 정적 중첩 클래스
- 객체를 독립적으로 생성 (Outer.Inner instance = new Outer.Inner())
- Inner class에 static 멤버 사용 가능
- Inner class에서 Outer class의 static 멤버만 접근 가능
3. 지역 중첩 클래스
- 특정 메서드를 실행할 때에만 필요하고 별로 사용할 경우가 없는 경우
- 접근 제한자 지정 예약어 사용 불가
- 메서드의 멤버를 사용하려면 그 멤버는 반드시 final로 선언
4. 익명 중첩 클래스
- class라는 예약어를 가지지 않고 단지 instance의 생성과 내용부의 정의만 갖음
- instance 생성시 해당 클래스의 일부를 재정의 (source class를 재정의 하기 때문에 현재 class는 Outer class)
- 현재 class의 접근가능 변수는 final
'dev > java' 카테고리의 다른 글
| [16] 1바이트 입력 (0) | 2008.09.27 |
|---|---|
| [16] 1바이트 출력 (0) | 2008.09.27 |
| Inner Class (0) | 2008.09.27 |
| this는 자기자신의 객체.. (0) | 2008.09.25 |
| 객체는 Reference로.... (0) | 2008.09.22 |
공지사항
