• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

내부클래스 객체선언질문

19.02.14 13:09 작성 조회수 120

2

'OutterClass.InnerClass in = oc. new InnerClass();'

'OutterClass.SInnerClass si = new OutterClass.InnerClass();'

이렇게 선언하는 부분이이 다른데 이유가 있나요?

static내부클래스 선언할때 oc.new SInnerClass(); 이렇게 선언하면 안되나요?

답변 1

답변을 작성해보세요.

0

sys님의 프로필

sys

2021.12.27

밑에 질문의 답변과 비슷한 내용이 될 것 같습니다. 생성하신 in객체는 OuterClass안에 있는 모든 객체가 사용할 수 없습니다. 그러나 static 클래스는 다르죠. in 객체는 OuterClass.InnerClass에서 밖에 사용할 수 없는 반면 static Class는 OuterClass 안에있는 모든 클래스들이 공유할 수 있어야 합니다. 그래서 OuterClass.SInnerClass로 따로 설정해주는 것입니다. oc.new SInnerClass()로 설정한다면 OuterClass에서 만든 객체 oc에 한정되어 객체가 생성될 것이기 때문에 static으로서의 의미가 사라질 것입니다.