Составители:
Рубрика:
56
бенности реализации не имеют значения: так устроен пакет java.jdbc,
обеспечивающий связь с базами данных.
Есть интерфейсы-маркеры, не содержащие ни одного метода, но
разрешающие выполнять над объектами имплементирующего класса
определенные действия, например, клонировать (интерфейс
java.lang.Cloneable) или записывать в поток вывода (интерфейс
java.io.Serializable).
Занятие 8. Пакеты
8.1 Организация библиотек Java
Java – язык с развитым интерфейсом прикладного программирова-
ния и богатым набором библиотек. Java ориентирован на создание
библиотек и тесно связан с механизмом формирования библиотек.
Каждый класс при своем создании готов автоматически стать частью
библиотеки. Дело в том, что разработчики языка отказались от тради-
ции объединять библиотечные модули в файлах специального формата
и
привязали библиотеки к той файловой структуре, в которой класс
сначала создается и затем хранится. Библиотеки Java называются па-
кетами. Пакет объединяет логически связанные наборы классов, хра-
нящиеся в одном каталоге. Имена пакетов жестко связываются с име-
нами каталогов, в которых они размещаются. Так, все классы пакета
com.java.road должны находиться в подкаталоге road подкаталога java
каталога com. Абсолютный путь к каталогу com может, в зависимости
от системы, называться C:\Documents and Settings\MyJava\com или
/home/me/SomeJava/com и быть каким угодно, но далее каталоги долж-
ны вкладываться друг в друга в том порядке, в котором они перечис-
лены в имени пакета: com\java\road или com/java/road и никак иначе.
Имя пакета должно указываться в каждом классе, включенном в пакет.
8.2 Директивы package и import
Имя пакета задается директивой package. Эта директива должна
быть первой незакомментированной строкой в файлах, содержащих
описания классов. Если в файле находится несколько описаний клас-
57
сов, одна директива package относится ко всем классам файла. Имя
класса состоит из имени пакета, содержащего класс, и собственного
имени класса
Если директива package отсутствует, классы относятся к так назы-
ваемому пакету по умолчанию, ограниченному текущим каталогом.
Все пакеты по умолчанию, созданные в различных каталогах, легко
объединяются в один, но классы этого пакета
недоступны классам из
именованных пакетов. Классы пакета по умолчанию имеют только
короткие имена; при поиске классов по коротким именам, область
поиска ограничивается только текущим пакетом и текущим классом.
Механизм импорта классов на классы пакета по умолчанию не распро-
страняется.
Импорт классов (фактически, присоединение библиотек) дает воз-
можность использовать неполное имя
класса внешнего пакета вместо
его полного имени. Это сокращает текст программ и позволяет, под-
меняя один пакет другим, изменять поведение программы, не прибегая
к компиляции. Импорт классов выполняется директивой
import имя.пакета.ИмяКласса;
размещаемой в начале файла с описаниями классов. Директиве
import может предшествовать только директива package.
При необходимости импорта нескольких
классов пакета допускает-
ся использование символов-шаблонов имен, например, так:
import java.awt.*;
Эта директива равносильна директивам импорта для всех классов па-
кета java.awt за исключением подпакетов (то есть, подкаталогов). Для
классов из подпакетов нужна отдельная директива импорта. Так, если
планируется использовать короткие имена классов из пакета
java.awt.event – подпакета java.awt – требуется к предыдущей директи-
ве импорта
добавить
import java.awt.event.*;
В принципе, директива import используется только для удобства
программиста. В случае же неоднозначности в разрешении имен клас-
сов приводит к недоразумениям и ошибкам.
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »