Внутренний статический класс в Java - PullRequest
8 голосов
/ 15 ноября 2010

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

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

Ответы [ 3 ]

6 голосов
/ 15 ноября 2010

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

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

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

4 голосов
/ 15 ноября 2010

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

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

4 голосов
/ 15 ноября 2010

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

...