| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > если класс static, все поля и методы обязательно |
| Автор: Gunslinger 12.5.2010, 18:34 |
| Если класс static, то все его поля и методы обязательно помечать как static? |
| Автор: EnJ 12.5.2010, 22:21 |
| Что-то я тогда в жизни упустил )))) Незя при объявлении класса использовать ключевое слово static. А вот поле или метод - пожалуста. |
| Автор: jk1 12.5.2010, 22:42 | ||
Для внутренних классов можно. По существу: нет, поля и методы статического класса могут быть нестатисческими. |
| Автор: EnJ 12.5.2010, 23:21 |
| Да, точно, внутренние можно. Как-то стыдно вдруг стало з.ы.:для справки - статический вложенный класс не имеет ссылки на внешний класс. |
| Автор: Gunslinger 13.5.2010, 12:24 |
| Про то, что вложенный класс может быть статическим читал. Но примеров не нашел, поэтому меня интересует 2 вопроса: 1. Внешний класс может быть статическим? 2. Если класс статический, то, по логике, все его поля и методы так же должны быть статическими. |
| Автор: EnJ 13.5.2010, 13:28 |
| http://www.quizful.net/post/inner-classes-java 1. Нет. 2. Необязательно. Не потому он называется статическим. |
| Автор: Gunslinger 14.5.2010, 08:53 | ||
| EnJ, спасибо за пример. Получается, класс (кроме вложенного) не может быть static.
Так нельзя? Но static значит, что от класса нельзя создавать экземпляры. Как тогда быть, если от класса мне нужно именно такое поведение: невозможность создать экземпляр? |
| Автор: 4EJIOBEK 14.5.2010, 08:59 |
| для невозможности создания экзепляра делают приватные конструкторы |
| Автор: Christoph 14.5.2010, 09:18 | ||||
| Хотел добавить вот что: Чтоб инициализировать статический внутренний класс
не статический внутренний класс
Объект на внутренний класс, не может существовать без объекта на внешний класс |
| Автор: Gunslinger 14.5.2010, 12:36 | ||
о_О? Опа, мистер Эккель кое-что от меня утаил.
Можно подробнее? Внутренний класс компилируется в отдельный файл. Общее - только доступ к некоторому содержимому обрамляющего класса. Как это выглядит на более низком уровне абстракции? Через глобальные переменные? |
| Автор: AlexeyVorotnikov 14.5.2010, 12:49 | ||
Bruce Eckel, "Thinking in Java" Fourth Edition Глава "Interfaces" подраздел "Abstract classes and methods"
|
| Автор: Gunslinger 14.5.2010, 13:22 |
| AlexeyVorotnikov, я думал, такая вещь к наследованию относится. А главу про интерфейсы я только собрался читать. Раз там про abstract написано, то остался только вопрос выше. |
| Автор: AlexeyVorotnikov 18.5.2010, 09:23 |
Какой именно вопрос? |
| Автор: Gunslinger 18.5.2010, 14:37 |
| AlexeyVorotnikov, про связь обрамляющего и внутреннего класса. Но у Эккеля уже прочитал, что связь осуществляется с помощью ссылки на обрамляющий класс. Поэтому сначала нужно создать его экземпляр, а потом уже экземпляры внутренних классов. Ссылка на экземпляр обрамляющего класса это как this? Т.е. аналогичная механика? |
| Автор: AlexeyVorotnikov 18.5.2010, 15:24 | ||||
Для ссылки на экземпляр внешнего класса используется нотация
|