В этой главе был рассмотрен механизм именования элементов языка. Для того чтобы различные части большой системы не зависели друг от друга, вводится понятие "область видимости имени", вне которой необходимо использовать не простое, а составное имя. Затем были изучены элементы (members), которые могут быть у пакетов и ссылочных типов. Также рассматривалась связь терминов "идентификатор" (из темы "Лексика") и имя.
Затем были рассмотрены пакеты, которые используются в Java для создания физической и логической структуры классов, а также для более точного разфаничения области видимости. Пакет содержит вложенные пакеты и типы (классы и интерфейсы). Вопрос о платформенной поддержке пакетов привел к рассмотрению модулей компиляции как текстовых файлов, поскольку именно в виде файлов и каталогов, как правило, хранятся и распространяются Java-приложения. Тогда же впервые был рассмотрен вопрос разграничения доступа, так как доступ к модулямкомпиляции определяется именно платформенной поддержкой, а точнее — операционной системой.
Модуль компиляции состоит из трех основных частей — объявление пакета, импорт выражения и объявления верхнего уровня. Важную роль играет безымянный пакет, или пакет по умолчанию, хотя он и не рекомендуется для применения при создании больших систем. Были изучены детали применения двух видов импорт выражений — импорт класса и импорт пакета. Наконец, было начато рассмотрение объявлений верхнего уровня (эта тема будет продолжена в главе, описывающей объявление классов). Пакеты, как и другие элементы языка, имеют определенные соглашения по именованию, призванные облегчить понимание кода и уменьшить возможность возникновения ошибок и двусмысленных ситуаций в программе.
Описание области видимости для различных элементов языка приводит к вопросу о возможных перекрытиях таких областей и, как следствие, о конфликтах имен. Рассматриваются "затеняющие" и "заслоняющие" объявления. Для устранения или уменьшения возможности проникновения таких ситуаций описываются соглашения по именованию для всех элементов языка.
Вопросы для самоконтроля:
Имена
Простые и составные имена. Элементы
Имена и идентификаторы
Область видимости (введение)
Пакеты
Элементы пакета
Платформенная поддержка пакетов
Модуль компиляции
Объявление пакета
Импорт-выражения
Объявление верхнего уровня
Уникальность имен пакетов
Область видимости имен
'Затеняющее" объявление (Shadowing)
'Заслоняющее'' объявление (Obscuring)
Соглашения по именованию
Рекомендуемая литература:
Разработка Web-служб средствами Java - Хабибуллин И.Ш.
Программирование на Java. Курс лекций - Вязовик Н.А.
Язык программирования Java: Создание интерактивных приложений для Internet - Карабин П.Л.
Java в примерах. Справочник - Флэнаган Д.
Ноутон П., Шилдт Г. - Java 2. Наиболее полное руководство
Дейтел Х.М. - Технологии программирования на Java 2. Книга 3. Корпоративныесистемы, сервлеты, JSP, Web-сервисы