Jump to content

Java-пакет

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

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

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

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

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. Этот файл также является местом для аннотаций, которые будут использоваться во всех классах пакета. [2]

Безымянный пакет [ править ]

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

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

Защита доступа к пакету [ править ]

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

Создание файлов JAR [ править ]

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

jar cf myPackage.jar *.class

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

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

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

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

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

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

Базовые пакеты в Java SE 8 [ править ]

java.lang базовые функции языка и фундаментальные типы, доступные без использования оператора импорта.
java.util коллекции структуры данных классы
java.io файловые операции
java.math арифметика с множественной точностью
java.nio платформа неблокирующего ввода-вывода для Java
java.net сетевые операции, сокеты, поиск DNS , ...
java.security генерация ключей, шифрование и дешифрование
java.sql Java Database Connectivity (JDBC) для доступа к базам данных
java.aut базовая иерархия пакетов для собственных компонентов графического интерфейса
java.текст Предоставляет классы и интерфейсы для обработки текста, дат, чисел и сообщений способом, независимым от естественных языков.
java.rmi Предоставляет пакет RMI.
java.time Основной API для дат, времени, моментов и продолжительности.
java.beans Пакет java.beans содержит классы и интерфейсы, связанные с компонентами JavaBeans.
Java.апплет Этот пакет предоставляет классы и методы для создания апплетов и взаимодействия с ними.

Модули [ править ]

В Java 9 (выпущенной 21 сентября 2017 г.) поддержка «модулей», своего рода коллекции пакетов, была реализована в результате усилий разработчиков Project Jigsaw. «Модули» ранее назывались «суперпакетами» и изначально планировались для Java 7.

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

Ссылки [ править ]

  1. ^ Джеймс Гослинг, Билл Джой, Гай Стил, Гилад Брача, Спецификация языка Java, третье издание , ISBN   0-321-24678-0 , 2005 г. Во введении говорится: «Глава 7 описывает структуру программы, которая организована в пакеты, аналогичные модулям Modula».
  2. ^ «Глава 7. Пакеты и модули» . docs.oracle.com . Проверено 10 декабря 2021 г.
  3. ^ «Глава 7. Пакеты» . Docs.oracle.com . Проверено 15 сентября 2013 г.
  4. ^ «Создание и использование пакетов (Учебные пособия по Java™ > Изучение языка Java > Пакеты)» . docs.oracle.com .
  5. ^ «Управление доступом к членам класса (Учебные пособия по Java™ > Изучение языка Java > Классы и объекты)» . docs.oracle.com .
  6. ^ Соглашения о коде для языка программирования Java: 9. Соглашения об именах.
  7. ^ «Пакеты» . docs.oracle.com .
  8. ^ «Сводка модуля JDK» . Корпорация Оракл . 23 октября 2015 г. Архивировано из оригинала 8 декабря 2015 г. Проверено 29 ноября 2015 г.
  9. ^ «Понимание модулей Java 9» . Корпорация Оракл . 1 октября 2017 года . Проверено 4 октября 2022 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1ed04d000f2f5050dcf593fb639fa003__1716011100
URL1:https://arc.ask3.ru/arc/aa/1e/03/1ed04d000f2f5050dcf593fb639fa003.html
Заголовок, (Title) документа по адресу, URL1:
Java package - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)