노승현
내부 클래스 본문
내부 클래스의 종류:
- 인스턴스 내부 클래스 (Instance Inner Class):
- 외부 클래스의 인스턴스가 생성될 때만 사용할 수 있는 내부 클래스입니다.
- 외부 클래스의 인스턴스 멤버에 접근이 가능합니다.
public class OuterClass {
class InnerClass {
// 내부 클래스의 멤버들
}
}
2. 정적 내부 클래스 (Static Inner Class):
- 외부 클래스의 인스턴스에 독립적으로 사용할 수 있는 내부 클래스입니다.
- 외부 클래스의 정적 멤버에만 접근이 가능합니다.
public class OuterClass {
static class StaticInnerClass {
// 내부 클래스의 멤버들
}
}
3. 지역 내부 클래스 (Local Inner Class):
- 메서드나 블록 내에서 선언되는 내부 클래스로, 지역 변수처럼 사용됩니다.
- 주로 메서드 내에서만 필요한 경우에 사용됩니다.
public class OuterClass {
void someMethod() {
class LocalInnerClass {
// 내부 클래스의 멤버들
}
}
}
4. 익명 내부 클래스 (Anonymous Inner Class):
- 이름이 없는 내부 클래스로, 주로 인터페이스나 추상 클래스의 인스턴스를 생성할 때 사용됩니다.
- 선언과 동시에 인스턴스가 생성되며, 일회성으로 사용할 때 편리합니다.
public class OuterClass {
interface MyInterface {
void myMethod();
}
MyInterface anonymousClass = new MyInterface() {
@Override
public void myMethod() {
// 익명 내부 클래스의 구현
}
};
}
내부 클래스의 접근 제한:
내부 클래스의 접근 제한은 일반적인 클래스의 접근 제한과 동일하게 private, default(package-private), protected, public 등을 사용할 수 있습니다. 내부 클래스가 외부 클래스의 private 멤버에 접근하려면 내부 클래스도 private으로 선언해야 합니다.
익명 클래스(Anonymous Class):
익명 클래스는 이름이 없는 내부 클래스로, 주로 한 번만 사용되는 간단한 구현체를 만들 때 유용합니다. 주로 인터페이스나 추상 클래스의 인스턴스를 생성할 때 사용되며, 선언과 함께 인스턴스를 생성합니다.
Runnable myRunnable = new Runnable() {
@Override
public void run() {
// 실행 코드
}
};
'JAVA > Mentor JAVA' 카테고리의 다른 글
API 클래스 (0) | 2024.01.19 |
---|---|
예외처리 (0) | 2024.01.19 |
다형성과 타입 변화 (0) | 2024.01.06 |
상속이란? (0) | 2024.01.02 |
생성자란? (1) | 2024.01.01 |