| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > public static class с не статическими полями |
| Автор: КунгФуЧайник 29.8.2015, 22:27 |
| Есть public static class. У него есть не статические public поля, методы. Чтобы получить к ним доступ, нужно ведь создать экземпляр этого класса? Смысл тогда объявлять его static-ом? |
| Автор: AntonSaburov 29.8.2015, 23:20 |
| Это требуется для внутреннего класса - без static доступ к этому классу будет невозможен. |
| Автор: Wissenstein 30.8.2015, 20:09 | ||||||||
Предположим, есть класс
В этом случае такой код будет правильным:
Если сделать класс Bar нестатическим:
то предыдущий код доступа к name будет синтаксическии неправильным, и его придётся переписать так:
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/public-static-class-s-ne-staticheskimi-polyami-id55e20840ae2015012f8b4567#findElement_E7045_55e338b4ae201527251cbe0c_0 |
| Автор: Samotnik 31.8.2015, 22:14 | ||
| КунгФуЧайник, вопрос из разряда ту би о но туби Не статический вложенный класс (твой второй) имеет доступ ко всем членам класса, в которые он вложен. В случае со статическим классом, он не имеет доступа к членам и методам того класса, где он лежит. Попробуй скомпилировать:
|
| Автор: jelum 12.10.2015, 13:53 |
| @КунгФуЧайник, посмотри на патерн Builder. Он построен через использование внутреннего статичного класса для создание экземпляра внешнего класса. Это одно из применений. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/public-static-class-s-ne-staticheskimi-polyami-id55e20840ae2015012f8b4567#findElement_E7045_561b9122ae2015a719b12d65_0 |