Составители:
Рубрика:
58
8.3 Имена классов
Исполняемые файлы Java находятся в файлах, имена которых сов-
падают с именами классов, содержащихся в них. Важно, чтобы имя
класса однозначно определяло нужный исполняемый код, т.е., имена
классов должны быть уникальными.
В Java имена элементов программ – классов – тесно связаны не
только с именами файлов, в которых они размещаются, но, благодаря
пакетам, и
с именами каталогов, в которых размещаются файлы клас-
сов. Часть файловой иерархии, содержащей файл класса, формирует
уникальное полное имя класса.
8.4 Поиск классов
Итак, полное имя класса состоит из имени пакета и имени класса.
Имя пакета совпадает с именем каталога, в который этот пакет содер-
жит. Но имя пакета совпадает только с относительным именем катало-
га размещения, а файлы разыскиваются по их абсолютным путевым
именам. Абсолютные имена каталогов, содержащих пакеты, записы-
ваются в переменную
среды CLASSPATH через символ-разделитель,
используемый в данной операционной системе. В UNIX-подобных ОС
это двоеточие, в Windows – точка с запятой. Для Windows регистр
символов переменной среды не имеет значение, в UNIX же соответст-
вие регистра обязательно. Если пакет с именем com.java.road находит-
ся в каталоге /home/java/lib, а пакет org.jit.unit – в каталоге /usr/java-lib,
то для использования классов этих пакетов
в каталоге /home/me в пе-
ременную среды CLASSPATH нужно добавить имена каталогов
/home/java/lib и /usr/java-lib. Это можно сделать в командной строке
(пример дан для интерпретатора bash):
$> export CLASSPATH=/usr/java-lib:/home/java/lib:$CLASSPATH
Дополнения к области поиска классов можно сделать с помощью
опции –cp или –classpath компилятора и/или интерпретатора Java. В
системе Windows вызов компилятора с опцией –classpath при условии,
что нужные пакеты находятся в каталогах c:\Program Files\Java и
59
D:\MyJava, будет выглядеть так:
>javac -cp “c:\Program Files\Java”;D:\MyJava MyClass.java
Переменная CLASSPATH может не иметь значения и опция
classpath, как правило, может не указываться. В этом случае использу-
ется встроенное значение переменной CLASSPATH, включающее
(всегда!) текущий каталог пользователя и архивные файлы стандарт-
ных библиотек и библиотек расширения. Архивные файлы .jar и .zip
форматов повторяют структуру архивируемых каталогов и могут ис-
пользоваться наравне с каталогами. При
включении архивных файлов
в переменную CLASSPATH или опцию компилятора и/или интерпре-
татора имя архивного файла должно указываться полностью. Если
класс com.mysql.jdbc.Driver находится в jar-файле MySQL-jdbc.jar, а
класс UseJDBC использует com.mysql.jdbc.Driver во время исполнения,
опция –classpath интерпретатора должна включать в CLASSPATH имя
jar-файла полностью:
>java -cp .;MySQL-jdbc.jar UseJDBC
Дополнения к области поиска классов можно делать по-разному –
указывать абсолютные и относительные имена, корректировать
CLASSPATH или добавлять опции исполняемых программ – но обяза-
тельно так, чтобы в результате сформировать правильные абсолютные
имена файлов используемых классов.
8.5 Определение уровня доступа при организации
пакетов
Когда разработка программы выходит за рамки пакета по умолча-
нию, задача адекватного задания уровня доступа для создаваемых
классов и их элементов становится актуальной.
• Классы, предназначенные для использования вне пакета,
должны объявляться публичными.
• Методы, не предназначенные для внешнего употребле-
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »