정적 내부 클래스(Static Inner Class)는 외부 클래스의 인스턴스에 종속되지 않는 내부 클래스로, 외부 클래스의 인스턴스를 생성하지 않고도 정적 내부 클래스의 객체를 생성할 수 있습니다. 이 클래스는 주로 외부 클래스의 네임스페이스를 정리하거나, 독립적인 유틸리티 클래스를 만들 때 사용됩니다.
정적 내부 클래스의 특징은 다음과 같습니다.
1. 인스턴스 종속성이 없음
정적 내부 클래스는 외부 클래스의 인스턴스에 종속되지 않습니다. 따라서 외부 클래스의 인스턴스를 생성하지 않고도 정적 내부 클래스의 객체를 생성할 수 있습니다.
2. 외부 클래스의 정적 및 비정적 멤버 접근 가능
정적 내부 클래스는 외부 클래스의 모든 멤버(정적 및 비정적)에 접근할 수 있습니다.
3. 외부 클래스의 인스턴스 생성 없이 객체 생성 가능
정적 내부 클래스의 객체를 생성할 때는 외부 클래스의 인스턴스 생성이 필요하지 않습니다.
정적 내부 클래스의 선언 형식은 다음과 같습니다.
public class Outer {
// 외부 클래스의 멤버 변수
private static int outerStaticField;
private int outerField;
// 외부 클래스의 정적 메서드
public static void outerStaticMethod() {
System.out.println("Outer static method");
}
// 외부 클래스의 비정적 메서드
public void outerMethod() {
System.out.println("Outer method");
}
// 정적 내부 클래스의 선언
public static class StaticInner {
// 정적 내부 클래스에서 외부 클래스의 정적 멤버에 접근 가능
public void innerStaticMethod() {
System.out.println("Inner static method: " + outerStaticField);
outerStaticMethod();
}
}
}
위의 예제에서 StaticInner 클래스는 Outer 클래스의 정적 멤버인 outerStaticField와 outerStaticMethod()에 접근할 수 있습니다. 또한 정적 내부 클래스의 객체를 생성할 때는 외부 클래스의 인스턴스 생성이 필요하지 않습니다.
public class Main {
public static void main(String[] args) {
// 정적 내부 클래스의 객체 생성
Outer.StaticInner staticInner = new Outer.StaticInner();
// 정적 내부 클래스의 메서드 호출
staticInner.innerStaticMethod();
}
}
정적 내부 클래스는 주로 외부 클래스와 독립적인 유틸리티 클래스를 만들거나, 네임스페이스를 정리하는 데 사용됩니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 익명 내부 클래스 (0) | 2023.11.14 |
---|---|
자바 지역 내부 클래스 (0) | 2023.11.14 |
자바 멤버 내부 클래스 (0) | 2023.11.13 |
자바 내부 클래스의 접근성 (0) | 2023.11.13 |
자바 내부 클래스의 선언 (0) | 2023.11.13 |