Java

[Java 기초] 내부클래스에 static을 붙이는 이유

devJK93 2025. 3. 22.

Java 내부 클래스에 static을 붙이는 이유

Java에서는 클래스 안에 또 다른 클래스를 정의할 수 있는데, 이를 내부 클래스 (Nested Class)라고 한다.
그리고 내부 클래스 중에서 static 키워드를 붙일 수 있는 경우가 있는데,
이번 글에서는 왜 내부 클래스에 static을 붙이는지를 쉽게 설명하겠다.

✅ 내부 클래스란?

클래스 내부에 정의된 클래스다. 예를 들어:

public class Outer {
    class Inner {
        // 일반 내부 클래스
    }

    static class StaticInner {
        // static 내부 클래스
    }
}

✅ 그럼 static은 왜 붙일까?

내부 클래스에 static을 붙이면 외부 클래스의 인스턴스 없이도 내부 클래스를 생성할 수 있다.

종류 생성 방식 외부 클래스 인스턴스 필요?
일반 내부 클래스 Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
✅ 필요함
static 내부 클래스 Outer.StaticInner inner = new Outer.StaticInner(); ❌ 필요 없음

✅ 언제 static을 붙이면 좋을까?

  • 내부 클래스가 외부 클래스의 인스턴스 변수나 메서드에 접근할 필요가 없을 때
    (static 메서드가 static 변수에만 접근 가능하듯 static 내부클래스도 static 변수나 메서드에만 접근가능)
  • 내부 클래스가 외부 클래스와 논리적으로만 연관되어 있을 때
  • Helper 클래스처럼 독립적으로 동작하는 경우

✅ 예제 코드

public class Outer {

    static class Helper {
        static void printHelp() {
            System.out.println("도움말 출력 중...");
        }
    }

    public static void main(String[] args) {
        Outer.Helper.printHelp();  // 외부 인스턴스 없이 바로 사용 가능
    }
}

✅ 정리

내부 클래스에 static을 붙이는 이유는
"외부 클래스의 인스턴스에 의존하지 않고 독립적으로 사용하기 위해서"이다.
즉, 생성과 사용이 더 유연해지고, 메모리 사용도 효율적일 수 있다.

그래서 내부 클래스가 외부 클래스의 인스턴스 변수에 접근하지 않고, 독립적으로 존재해도 되는 상황이라면 static을 붙이는 것이 좋은 선택!

'Java' 카테고리의 다른 글

자바 enum  (0) 2024.12.09
자바 리플렉션  (0) 2024.12.07
[Java] JDK, JRE, JVM 질의응답 (ChatGPT)  (1) 2024.08.31
[Java] Reflection  (2) 2024.02.21
Generics (Java)  (1) 2024.02.12

댓글