클래스는 왜 정적으로 선언 할 수 없나요?

조회수 2436회

클래스는 왜 정적으로 선언 할 수 없나요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    정적 선언 돼요. 근데 중첩클래스에서만 가능해요. 내부클래스에서 바깥 클래스의 인스턴스없이 사용하고 싶을때 정적으로 선언해요 아래 예제처럼

    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();
    }
    

    4대 중첩 클래스 보고 공부하시면 도움 될 거에요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)