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


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

  • 2016년 01월 07일에 작성됨

조회수 185


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대 중첩 클래스 보고 공부하시면 도움 될 거에요.

  • 2016년 01월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close