Шаг 31.
Язык программирования Java.
Общие сведения об пакетах

На этом шаге мы поговорим про пакеты

Язык Java позволяет объединять классы в наборы, называемые пакетами. Пакеты облегчают организацию работы и позволяют отделить классы, созданные одним разработчиком, от классов, разработанных другими. Стандартная библиотека Java содержит большое количество пакетов, в том числе java.lang, java.util, java.net и так далее. Стандартные пакеты Java представляют собой иерархические структуры. Подобно каталогам на диске компьютера, пакеты могут быть вложены один в другой.

Пакеты служат в основном для обеспечения однозначности имен классов. Чтобы обеспечить абсолютную однозначность имени пакета, рекомендуется использовать доменное имя компании в Интернете, записанное в обратном порадке. В составе пакета можно создавать подпакеты и использовать их в разных проектах. Так, например, можно использовать такое название пакета: ru.kgsu.it.

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

Единственный случай, когда следует обратить особое внимание на пакет, возникает при конфликте имен. Например, оба пакета, java.util и java.sql, содержат класс Date. Допустим, разрабатывается программа, в которой оба эти пакета импортируются следующим образом:

import java.util.*;
import java.sql.*;

Если теперь возпользоваться классом Date, возникнет ошибка компиляции. Компилятор не в состоянии определить, какой именно класс Date требуется в программе. Разрешить это затруднение можно, добавив конкретный оператор import следующий образом:

import java.util.*;
import java.sql.*;
import java.util.Date;

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

java.util.Date deadline = new java.util.Date();
java.sql.Date today = new java.sql.Date();

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

Чтобы ввести класс в пакет, следует указать имя пакета в начале исходного файла перед определением класса. Например, исходный файл Employee.java класса Employee можно было бы начать следующим образом:

package ru.kgsu.it;

public class Employee {
	...
}

Если оператор package не указан, то классы, описанные в этом файле, вводятся в пакет по умолчанию. У пакета по умолчанию нет имени. Все рассмотренные ранее примеры принадлежали пакету по умолчанию.

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

На следующем шаге мы начнем говорить об наследовании.

Предыдущий шаг Содержание Следующий шаг