![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Bikutoru |
|
|||
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: нет Всего: 22 |
Здраствуйте. У меня возник один вопрос.
В 3ей главе Эккеля приведён следующий пример:
В то же время в каждую программу неявно импортируется java.lang, в состав которого тоже входит класс Number. При этом никакой ошибки не происходит, хотя по логике у нас есть два различных класса с одинаковым названием... Если я явно импортирую java.lang.*, то опять же нет никакой ошибки, она возникает, только если я явно импортирую java.lang.Number. А теперь, собственно, мой вопрос ![]() -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Скорее всего, класс из этого же пакета "перекрывает" класс из других пакетов.
Можно поэкспериментировать - сделать свой пакет, перенести в него свой Number и попробовать импортировать. Добавлено @ 09:51 А может, это особенность пакета java.lang?.. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Явный импорт класса перекрывает импорт пакета:
Будет использован java.util.Date. А вообще это все проблемы времени компиляции, внутри байткода все имена классов хранятся полностью (с именем пакета). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
jer1 |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 24.1.2005 Где: Харьков Украина Репутация: 4 Всего: 5 |
http://java.sun.com/docs/books/jls/third_e...ages.html#7.5.2
или по-русски http://www.uni-vologda.ac.ru/java/jls/7-doc.htm как я понял при одиночном импорте (7.5.1 Single-Type-Import Declaration) мы сразу связываем тип и имя в соответствующем модуле компиляции (в дальнейшем в этом модуле компиляции другой тип с таким же именем мы не сможем объявить из-за конфликта имён)
импорт по шаблону (7.5.2 Type-Import-on-Demand Declaration) даёт возможность получать доступ к типам находящимся в заданом пакете
Причём в дальнейшем объясняется как разрешаются спорные ситуации в отношении имен типов: опять же как я понял, имя типа получаемое из конструкции вида PackageOrTypeName . * используется только если нет более частного случая: одиночного импорта импортирующего тип с тем же именем, наличие класса или интерфейса с тем же именем в текущем модуле компиляции
--------------------
:w!q |
||||||
|
|||||||
Bikutoru |
|
|||
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: нет Всего: 22 |
Всем спасибо за ответы. Почитал их, спецификацию, поэкспериментировал, вроде бы с этим разобрался (плюю через левое плечо, чтобы не сглазить)
-------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |