프로그래밍 언어/JAVA

Java에서 클래스를 정적으로 선언 할 수 없는 이유

Rateye 2021. 12. 12. 23:17
728x90
반응형
질문 : Java에서 클래스를 정적으로 선언 할 수없는 이유는 무엇입니까?

Java에서 클래스를 정적으로 선언 할 수없는 이유는 무엇입니까?

답변

중첩 된 클래스 만 정적 일 수 있습니다. 이렇게하면 외부 클래스의 인스턴스없이 중첩 된 클래스를 사용할 수 있습니다.

class OuterClass {
    public static class StaticNestedClass {
    }

    public class InnerClass {
    }

    public InnerClass getAnInnerClass() {
        return new InnerClass();
    }

    //This method doesn't work
    public static InnerClass getAnInnerClassStatically() {
        return new InnerClass();
    }
}

class OtherClass {
    //Use of a static nested class:
    private OuterClass.StaticNestedClass staticNestedClass = new OuterClass.StaticNestedClass();

    //Doesn't work
    private OuterClass.InnerClass innerClass = new OuterClass.InnerClass();

    //Use of an inner class:
    private OuterClass outerclass= new OuterClass();
    private OuterClass.InnerClass innerClass2 = outerclass.getAnInnerClass();
    private OuterClass.InnerClass innerClass3 = outerclass.new InnerClass();
}

출처 :

같은 주제에 대해 :

출처 : https://stackoverflow.com/questions/3584113/why-are-you-not-able-to-declare-a-class-as-static-in-java
728x90
반응형