Внутренний статический класс в Java

В чем преимущество использования внутреннего статического класса? Где я должен предпочесть это по сравнению с другими вариантами?

И как распределяется его память?

3 ответа

Решение

Если внутренний класс является статическим, вам не нужен экземпляр внешнего класса для его создания.

Если внутренний класс является общедоступным, это в основном просто метод определения имен, чтобы подчеркнуть тот факт, что класс "принадлежит" внешнему классу.

Однако, если вы сделаете внутренний класс приватным, его нельзя использовать вне этого класса.

Одна из наиболее веских причин для использования внутренних классов - это композиция. В случае композиции существование одной сущности исключительно для цели ее более высокой сущности. Например университет. Университет состоит из кафедр. Кафедры не имеют индивидуального существования вне университета. Более того, доступ к кафедрам должен контролировать университет. В этом случае мы можем иметь класс Department как внутренний класс класса University.

И как распределяется его память?

Простой ответ заключается в том, что память для внутреннего статического класса выделяется так же, как и для не вложенного класса. В этом случае нет ничего особенного ни в отношении экземпляров классов, ни в отношении статических членов класса.

Другие вопросы по тегам