Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
создает ошибку компиляции в случае, если описание типа не обнаруживается в файле с названием, составленным из имени типа и расширения (например, java), и при этом:
• тип объявлен как public и, значит, может использоваться из других пакетов;
• тип используется из других модулей компиляции в своем пакете. Эти условия означают, что в модуле компиляции может быть максимум один тип отвечающий этим условиям.
Другими словами, в модуле компиляции может быть максимум один public тип, и его имя и имя файла должны совпадать. Если же в нем есть не-public типы, имена которых не совпадают с именем файла, то они должны использоваться только внутри этого модуля компиляции.
Если же для хранения пакетов применяется БД, то такое ограничение не должно накладываться.
На практике же программисты зачастую помещают в один модуль компиляции только один тип, независимо от того, public он или нет. Это существенно упрощает работу с ними. Например, описание класса space.sun.Size хранится в файле space\sun\Size.java, а бинарный код -в файле Size.class в том же каталоге. Именно так устроены все стандартные библиотеки Java.
Обратите внимание, что при объявлении классов вполне допускаются перекрестные обращения. В частности, следующий пример совершенно корректен:
package test;
/*
* Класс Human, описывающий человека
7
class Human { String name;
Car car; // принадлежащая человеку машина
}
Г
* Класс Car, описывающий автомобиль
7
class Car { String model;
Human driver; // водитель, управляющий машиной
}
Кроме того, класс Саг был использован раньше, чем был объявлен. Такое перекрестное применение типов также допускается в случае, если они находятся в разных пакетах. Компилятор должен поддерживать возможность транслировать их одновременно.
Уникальность имен пакетов
Поскольку Java создавался как язык, предназначенный для распространения приложений через Internet, а приложения состоят из структуры пакетов, необходимо предпринять некоторые усилия, чтобы не произошел конфликт имен. Имена двух используемых пакетов могут совпасть по прошествии значительного времени после их создания. Исправить такое положение обычному программисту будет крайне затруднительно.
Поэтому создатели Java предлагают следующий способ уникального именования пакетов. Если программа создается разработчиком, у которого есть