Пакет Java

редактировать

A Пакет Java организует Java классы в пространства имен, предоставляя уникальное пространство имен для каждого содержащегося в нем типа. Классы в одном пакете могут обращаться к частным и защищенным членам пакета друг друга.

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

Содержание

  • 1 Использование пакетов
    • 1.1 Документация Javadoc и аннотации для всего пакета
    • 1.2 Безымянный пакет
  • 2 Защита доступа к пакету
  • 3 Создание файлов JAR
  • 4 Соглашения об именах пакетов
  • 5 Базовых пакетов в Java SE 8
  • 6 Модулей
  • 7 Ссылки
  • 8 Внешние ссылки

Использование пакетов

В исходном файле Java пакет, который класс или классы этого файла принадлежат к указанному с помощью ключевого слова package. Это ключевое слово обычно является первым ключевым словом в исходном файле. В исходном файле может появиться не более одного объявления пакета.

пакет java.awt.event;

Чтобы использовать классы пакета внутри исходного файла Java, удобно импортировать классы из пакета с объявлением import. Следующее объявление

import java.awt.event. *;

импортирует все классы из пакета java.awt.event, а следующее объявление

import java.awt.event.ActionEvent;

импортирует из пакета только класс ActionEvent. После любого из этих объявлений импорта на класс ActionEventможно ссылаться, используя его простое имя класса:

ActionEvent myEvent = new ActionEvent ();

Классы также можно использовать напрямую без объявления импорта, используя полное имя класса. Например,

java.awt.event.ActionEvent myEvent = new java.awt.event.ActionEvent ();

не требует предшествующего объявления импорта.

Пакетная документация Javadoc и аннотации

Документация, объясняющая пакет в целом, записывается как Javadoc в файле с именем `package-info.java`. Этот файл также является местом для аннотаций, которые будут использоваться во всех классах пакета. См. Спецификация языка Java.

Безымянный пакет

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

Как правило, безымянный пакет предназначен только для небольших или временных приложений или когда вы только начинаете процесс разработки. В противном случае классы и интерфейсы принадлежат именованным пакетам.

Защита доступа к пакету

Открытые члены и классы видны повсюду, а частные члены видны только в том же классе. Классы в пакете могут иметь доступ к классам и членам, объявленным с доступом по умолчанию (частный для пакета), а также к членам класса, объявленным с помощью модификатора доступа protected. Доступ по умолчанию (частный для пакета) применяется, если класс или член не были объявлены как public, protectedили private. Напротив, классы в других пакетах не могут получить доступ к классам и членам, объявленным с доступом по умолчанию. Однако к членам класса, объявленным как protected, можно получить доступ из классов в том же пакете, а также из классов в других пакетах, которые являются подклассами объявленного класса.

Создание файлов JAR

Файлы JAR создаются с помощью утилиты командной строки jar. Команда

jar cf myPackage.jar *.class

сжимает все файлы.class в файл JAR myPackage.jar. Параметр «c» в командной строке указывает команде jar «создать новый архив». Параметр 'f' указывает ему создать файл. Имя файла ставится перед содержимым файла JAR.

Соглашения об именах пакетов

Пакеты обычно определяются с использованием иерархического шаблона именования , с некоторыми уровнями в иерархии, разделенными точками (., произносится как «точка»). Хотя пакеты, расположенные ниже в иерархии имен, часто называют «подпакетами» соответствующих пакетов выше в иерархии, между пакетами почти отсутствует семантическая связь. Спецификация языка Java устанавливает соглашения об именах пакетов, чтобы избежать возможности того, что два опубликованных пакета будут иметь одно и то же имя. Соглашения об именах описывают, как создавать уникальные имена пакетов, чтобы широко распространенные пакеты имели уникальные пространства имен. Это позволяет легко и автоматически устанавливать и каталогизировать пакеты по отдельности.

Как правило, имя пакета начинается с доменного имени верхнего уровня организации, затем домена организации, а затем любых поддоменов, перечисленных в обратном порядке. Затем организация может выбрать конкретное имя для своего пакета. Последующие компоненты имени пакета различаются в соответствии с внутренними соглашениями об именовании организации.

Например, если организация в Канаде под названием MySoft создает пакет для работы с дробями, называя пакет ca.mysoft. Fractionsотличает пакет фракций от другого аналогичного пакета, созданного другой компанией. Если немецкая компания MySoft также создает пакет фракций, но называет его de.mysoft.fractions, тогда классы в этих двух пакетах определяются в уникальном и отдельном пространстве имен.

Полные соглашения по устранению неоднозначности в именах пакетов и правила для именования пакетов, когда имя домена в Интернете не может использоваться напрямую в качестве имени пакета, описаны в разделе 7.7 Спецификации языка Java.

Основные пакеты в Java SE 8

java.lang- базовая функциональность языка и основные типы
java.util- коллекция структура данных классы
java. io- файловые операции
java.math- мультиточная арифметика
java.nio- Неблокирующий ввод / вывод framework для Java
java.net- сетевые операции, сокеты, поиск DNS,...
java.security- генерация ключей, шифрование и дешифрование
java.sqlJava Database Connectivity (JDBC) для доступа к базам данных
java.awt- базовая иерархия пакетов для собственных компонентов GUI
java. text- предоставляет классы и интерфейсы для обработки текста, дат, чисел и сообщений способом, независимым от природы. l языков.
java.rmi- предоставляет пакет RMI.
java.time- основной API для дат, времени, моментов и продолжительности.
java.beans- Пакет java.beans содержит классы и интерфейсы, связанные с компонентами JavaBeans.
java.applet- этот пакет предоставляет классы и методы для создания апплетов и взаимодействия с ними.

Пакет java.lang доступен без использования оператора импорта.

Модули

В Java 9 «модули», своего рода набор пакетов, планируются как часть Project Jigsaw; они ранее назывались «суперпакетами» и изначально планировались для Java 7.

Модули будут описывать свои зависимости в объявлении модуля, которое будет помещено в файл с именем module-info.java в корне исходного кода модуля. файловая иерархия. JDK сможет проверить их как во время компиляции, так и во время выполнения. Сам JDK будет модульным для Java 9.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-24 03:57:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте