내부 클래스
- 클래스 내에 선언된 클래스
- 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언한다.
class A { // 외부클래스
...
class B { // 내부클래스
...
}
...
}
내부 클래스의 장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
- 코드의 복잡성을 줄일 수 있다.(캡슐화)
내부 클래스의 종류와 특징
내부 클래스의 종류는 변수의 선언위치에 따른 종류와 같다.
내부 클래스의 제어자와 접근성
- 내부 클래스의 접근 제어자는 멤버변수에 사용할 수 있는 접근 제어자와 동일하다.
- static 클래스만 static 멤버를 정의할 수 있다.
- 내부 클래스도 외부 클래스의 멤버로 간주되며, 동일한 접근성을 갖는다.
- 외부 클래스의 지역변수는 final이 붙은 변수(상수)만 접근 가능하다.
익명 클래스
이름이 없는 일회용 클래스
클래스의 선언과 객체의 생성을 동시에 하기 때문에 한 번만 사용될 수 있고, 단 하나의 객체만을 생성할 수 있다.
new 조상클래스이름() {
// 멤버 선언
}
또는
new 구현인터페이스이름() {
// 멤버 선언
}
class InnerEx6 {
Object iv = new Object(){ void method(){} }; // 익명클래스
static Object cv = new Object(){ void method(){} }; // 익명클래스
void myMethod() {
Object lv = new Object(){ void method(){} }; // 익명클래스
}
}
'JAVA' 카테고리의 다른 글
[java.lang] Object 클래스 (0) | 2023.03.09 |
---|---|
예외처리 (0) | 2023.03.08 |
[OOP] 인터페이스(interface) (0) | 2023.03.08 |
[OOP] 추상클래스 (0) | 2023.03.08 |
[OOP] 다형성(polymorphism) (0) | 2023.03.08 |