Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Конфликты именования




Импортирование пакетов

Существует ряд способов доступа к классам в пакетах, основным из которых является импортирование пакета в начале программ:

import ИмяПакета.*

или

import ИмяПакета.ИмяКлассаПакета

В этом случае импортирование просто должно предшествовать всем другим строка программы. Например:

import java.applet.*

import java.awt.*

import java.net.URL

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

Надо заметить, что несмотря на то, что в первых двух строках указывается импортировать все классы пакета, на самом деле импортируются только классы, которые используются в программе; язык Java компонует классы, только если они действительно используются.

После того, как пакет импортирован, классы можно использовать просто по именам, без указания на принадлежность тому или иному пакету, например:

ИмяКлассаПакета Obj=new ИмяКлассаПакета(<Параметры>);

При использовании класса из пакета необходимо или импортировать пакет, частью которого он является, или сослаться на него в программе, как это описано ниже. Однако нет необходимости беспокоиться об импортировании пакета java.lang, так как эти классы - базовые классы Java и автоматически импортируются независимо от того, заданы они или нет.

Явные ссылки на классы пакетов

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

ИмяПакета.ИмяКласса Obj=new ИмяПакета.ИмяКласса (Параметры);

Способ явной ссылки на класс из пакета более удобен для чтения и понимания, откуда появился используемый класс, чем метод предложения импорта пакета, но менее удобен для кодирования, так как ссылка получается достаточно длинной.

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

Если программа импортирует два пакета и в каждом объявлены классы с одинаковыми именами, то непонятно, к примеру, по классу из какого пакета будет создаваться экземпляр класса. Это определить невозможно, поэтому компилятор выдаст ошибку и прервет компиляцию. Однако можно предотвратить этот потенциальный конфликт с помощью явного объявления имени пакета вместе с именем классов.




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.