제 질문은 : 중첩 클래스는 정적 멤버을 가질 수 없다는 것을 알고 있습니다 (클래스가 정적으로 설명되지 않은 경우에만). 그러나 때때로 우리는 그것을 가질 필요가 있습니다.Java. 정적 멤버가있는 중첩 클래스입니다. 어떻게 우회 할 수 있습니까?
예 : 입니다. 책은 입니다.(도서관의 분리 할 수없는 부분으로 책을 고려할 것이며, 다른 예를 추측 할 수 없습니다). 클래스 라이브러리 중첩 된 개인 클래스 도서을 설명해야합니다. Book이 라이브러리에만 존재하기 때문에 중첩 됨 (앞에서 설명한대로). 우리는 도서관 외부의 창작 도서를 허용하기 때문에 비공개입니다. 나는 모든 도서관에 보관 된 모든 책을 갖고 싶다. 나는 정적 인 카운터를 가져야 만하는 단순한 상황이지만 그럴 수는 없다. 도서가 라이브러리에 속하기 때문에 책을 정적 클래스로 설명 할 수 없습니다.
귀하의 도서가 단일 도서관에 속해야하는 경우,이 책의 카운터를 모든 도서관에 보관하는 시점은 무엇입니까? 다른 라이브러리에 저장된 인스턴스는 서로 다른 인스턴스이며 공유 할 수 없으므로 카운터는 인스턴스 필드가 될 수 있습니다. –
@Matthew Farwell : 모든 라이브러리의 모든 책의 수이며 모든 라이브러리에서이 책의 수가 아닙니다. –
그런 다음 라이브러리에 저장됩니다. 라이브러리에 보유하고있는 책의 수를 저장하는 것이 더 적합합니다. 필요한 경우 전체에 대한 정적 필드가 될 수도 있고, 모든 라이브러리를 합산하는 메소드를 가질 수도 있습니다 . –