Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> если класс static, все поля и методы обязательно, помечать как static? 
:(
    Опции темы
Gunslinger
Дата 12.5.2010, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Если класс static, то все его поля и методы обязательно помечать как static?
PM MAIL   Вверх
EnJ
Дата 12.5.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 4.1.2010
Где: Харьков

Репутация: нет
Всего: нет



Что-то я тогда в жизни упустил ))))
Незя при объявлении класса использовать ключевое слово static.
А вот поле или метод - пожалуста.

PM MAIL ICQ   Вверх
jk1
Дата 12.5.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Незя при объявлении класса использовать ключевое слово static.


Для внутренних классов можно.

По существу: нет, поля и методы статического класса могут быть нестатисческими.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
EnJ
Дата 12.5.2010, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 4.1.2010
Где: Харьков

Репутация: нет
Всего: нет



Да, точно, внутренние можно.

Как-то стыдно вдруг стало smile))

з.ы.:для справки - статический вложенный класс не имеет ссылки на внешний класс.
PM MAIL ICQ   Вверх
Gunslinger
Дата 13.5.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Про то, что вложенный класс может быть статическим читал. Но примеров не нашел, поэтому меня интересует 2 вопроса:
1. Внешний класс может быть статическим?
2. Если класс статический, то, по логике, все его поля и методы так же должны быть статическими. 
PM MAIL   Вверх
EnJ
Дата 13.5.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 4.1.2010
Где: Харьков

Репутация: нет
Всего: нет



Примеры.

1. Нет.
2. Необязательно. Не потому он называется статическим.



PM MAIL ICQ   Вверх
Gunslinger
Дата 14.5.2010, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



EnJ, спасибо за пример. 
Получается, класс (кроме вложенного) не может быть static. 
Код

[S]static[/S] class Vehicle {
    ....
}

Так нельзя?
Но static значит, что от класса нельзя создавать экземпляры. Как тогда быть, если от класса мне нужно именно такое поведение: невозможность создать экземпляр?
PM MAIL   Вверх
4EJIOBEK
Дата 14.5.2010, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 26.3.2007

Репутация: нет
Всего: 4



для невозможности создания экзепляра делают приватные конструкторы
PM MAIL ICQ   Вверх
AlexeyVorotnikov
Дата 14.5.2010, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 10
Всего: 18



Цитата(Gunslinger @  14.5.2010,  09:53 Найти цитируемый пост)
Как тогда быть, если от класса мне нужно именно такое поведение: невозможность создать экземпляр?

Сделать класс абстрактным.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Christoph
Дата 14.5.2010, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: нет
Всего: 11



Хотел добавить вот что:
Чтоб инициализировать статический внутренний класс 
Код

OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();


не статический внутренний класс 
Код

OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();


Объект на внутренний класс, не может существовать без объекта на внешний класс


--------------------
user posted image
PM MAIL ICQ   Вверх
Gunslinger
Дата 14.5.2010, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(AlexeyVorotnikov @  14.5.2010,  09:10 Найти цитируемый пост)
Сделать класс абстрактным

о_О? Опа, мистер Эккель кое-что от меня утаил.

Цитата(Christoph @  14.5.2010,  09:18 Найти цитируемый пост)
Объект на внутренний класс, не может существовать без объекта на внешний класс 

Можно подробнее? Внутренний класс компилируется в отдельный файл. Общее - только доступ к некоторому содержимому обрамляющего класса. Как это выглядит на более низком уровне абстракции? Через глобальные переменные?

PM MAIL   Вверх
AlexeyVorotnikov
Дата 14.5.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 10
Всего: 18



Цитата(Gunslinger @  14.5.2010,  13:36 Найти цитируемый пост)
о_О? Опа, мистер Эккель кое-что от меня утаил.


Bruce Eckel, "Thinking in Java" Fourth Edition   Глава "Interfaces" подраздел "Abstract classes and methods"
Цитата
It’s possible to make a class abstract without including any abstract methods. This is useful when you’ve got a class in which it doesn’t make sense to have any abstract methods, and yet you want to prevent any instances of that class.



--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Gunslinger
Дата 14.5.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



AlexeyVorotnikov, я думал, такая вещь к наследованию относится. А главу про интерфейсы я только собрался читать. Раз там про abstract написано, то остался только вопрос выше.
PM MAIL   Вверх
AlexeyVorotnikov
Дата 18.5.2010, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 10
Всего: 18



Цитата(Gunslinger @  14.5.2010,  14:22 Найти цитируемый пост)
остался только вопрос выше

Какой именно вопрос?


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Gunslinger
Дата 18.5.2010, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



AlexeyVorotnikov, про связь обрамляющего и внутреннего класса. Но у Эккеля уже прочитал, что связь осуществляется с помощью ссылки на обрамляющий класс. Поэтому сначала нужно создать его экземпляр, а потом уже экземпляры внутренних классов. Ссылка на экземпляр обрамляющего класса это как this? Т.е. аналогичная механика?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1205 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.