자바의 내부 클래스는 클래스 내부에서 정의되어 있는 클래스로, 외부 클래스에 종속적인 멤버 내부 클래스(Member Inner Class), 외부 클래스에 독립적인 정적 내부 클래스(Static Nested Class), 지역 내부 클래스(Local Inner Class), 익명 내부 클래스(Anonymous Inner Class) 등이 있습니다. 각 내부 클래스의 선언에 대한 설명은 다음과 같습니다.
1. 멤버 내부 클래스 (Member Inner Class)
- 외부 클래스의 멤버로 선언되는 내부 클래스입니다.
- 선언 위치 : 외부 클래스의 멤버 변수나 메서드 내부에서 선언됩니다.
- 선언 방법 :
public class OuterClass {
// 멤버 변수, 메서드 등
public class InnerClass {
// 내부 클래스의 멤버
}
}
2. 정적 내부 클래스 (Static Nested Class)
- 외부 클래스의 정적 멤버로 선언되는 내부 클래스입니다.
- 선언 위치 : 외부 클래스의 멤버 변수와 메서드 사이에 static 키워드를 사용하여 선언됩니다.
- 선언 방법 :
public class OuterClass {
// 멤버 변수, 메서드 등
public static class StaticInnerClass {
// 정적 내부 클래스의 멤버
}
}
3. 지역 내부 클래스 (Local Inner Class)
- 메서드나 코드 블록 내에서 선언되는 내부 클래스로, 해당 블록 내에서만 유효합니다.
- 선언 위치 : 메서드나 코드 블록 내부에서 선언됩니다.
- 선언 방법 :
public class OuterClass {
public void outerMethod() {
class LocalInnerClass {
// 지역 내부 클래스의 멤버
}
// 클래스 인스턴스 생성 또는 활용
LocalInnerClass localInner = new LocalInnerClass();
}
}
4. 익명 내부 클래스 (Anonymous Inner Class)
- 이름이 없는 클래스로, 주로 인터페이스의 구현이나 추상 클래스의 확장에 사용됩니다.
- 선언 위치 : 주로 메서드 내에서 인터페이스나 추상 클래스의 인스턴스를 생성하는 부분에서 선언됩니다.
- 선언 방법 :
public class OuterClass {
public void anonymousInnerMethod() {
InterfaceName obj = new InterfaceName() {
// 익명 내부 클래스의 멤버
};
// 객체 활용
obj.method();
}
}
내부 클래스는 주로 코드의 가독성을 높이고 캡슐화를 강화하는 데 사용됩니다. 각 내부 클래스는 자신만의 특징과 사용 목적이 있으며, 프로그램의 요구 사항에 따라 적절한 내부 클래스를 선택하여 활용해야 합니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 멤버 내부 클래스 (0) | 2023.11.13 |
---|---|
자바 내부 클래스의 접근성 (0) | 2023.11.13 |
자바 내부 클래스의 특징 (0) | 2023.11.13 |
자바 내부 클래스(inner class) (0) | 2023.11.13 |
자바 인터페이스의 이해 (0) | 2023.11.13 |