Переменная окружения CLASSPATH.
Оператор import.
Лекция №4.
Чтобы избавить разработчика от необходимости указывать полные имена и в то же время позволить ему воспользоваться преимуществами пакетов, используется оператор import.
Если вы собираетесь работать в программе с другими классами пакета projects.firstorder.math, можете включить все классы с помощью одного оператора import, который в данном случае будет выглядеть так:
import projects.firstorder.math.*;
Заметьте, что символ * определяет классы, но не пакеты. Так, если вы включите в исходный текст строку
import projects.firstorder. *;
вы импортируете классы, содержащиеся в пакете firstorder, по не пакет math.
Для того чтобы механизм пакетов можно было корректно использовать, должны выполняться два условия.
· Поиск класса должен начинаться с одного из каталогов, указанных в качестве значения переменной окружения CLASSPATH.
· Иерархия каталогов должна соответствовать иерархии пакетов.
Если на вашем компьютере установлен JDK, обратите внимание на содержимое файла autoexec.bat. Вы найдете в нём строку приблизительно такого содержания:
SET CLASSPATH=.;C:\JDK1.1\CLASSES;C:\JDK1.1\LIB\CLASSES.ZIP
Как видите, в качестве значения переменной окружения CLASSPATH указаны текущий каталог, каталог C:\JDK1.1\CLASSES и файл C:\JDK1.1\LIB\CLASSES.ZIP. Предположим, что в файл, содержащий исходный текст программы, включена следующая строка:
import java.applet.*;
В этом случае поиск классов для импортирования производится следующим образом. Вначале проверяется текущий каталог. Поскольку иерархия каталогов должна соответствовать иерархии пакетов, классы и пакеты, содержащиеся в пакете java, должны находиться в каталоге с именем java. Если такою каталоги нет, поиск продолжается в каталоге C:\JDK1.1\CLASSES. Если и там нет каталога с именем java, проверяется файл C:\JDK1.1\LIB\CLASSES.ZIP.
В файле CLASSES.ZIP находится архив, в котором сохранена структура каталогов. Ввиду того что длина большинства файлов, содержащих описание классов, выражается трехзначными числами, хранение классов в виде архиве, позволяет эффективнее использовать дисковое пространство.
|
Оперативно распаковывая содержимое архива, средства поддержки пакетов Java обнаруживают каталог с именем java. В этом каталоге находится подкаталог с именем applet. Содержимое этого подкаталога и должно быть импортировано.
Итак, проверка наличия пакета, по существу, сводится к проверке наличия подкаталога с указанным именем.
Класс, о котором должен знать каждый.
В отличие от C/C+ + , где роль строки выполняет массив символов, оканчивающийся нулем, в Java строка представляется специальным объектом. Прежде чем выполнять с объектом типа String какие-либо действия, его надо сначала создать.
Ниже перечислены некоторые из конструкторов класса String.
· String () — создаёт объект String, представляющий «пустую» строку.
· String (String) — создаёт новый объект String, представляющий собой копию объекта, переданного конструктору в качестве параметра.
· String (char [ ]) — создаёт новый объект String и инициализирует его указанным массивом символов.
· String (char [ ], int смещение int длина) — инициализирует создаваемый объект String частью массива символов указанной длины, которая начинается с элемента, номер которого задан в качестве второго параметра.
· String (byte [ ], int старший_байт) — создаст новый объект String и инициализирует его элементами из заданного байтового массива. В качестве заполнителя для старшего байта используется значение второго параметра.
Программируя на языке C. вы, наверное, привыкли к тому, что имеете возможность обратиться к любому элементу массива символов и записать в него новое значение. В языке Java все действия со строками выполняются посредством вызова методов класса String.
Ниже описаны некоторые из методов класса String и действия, которые они выполняют.
· int length () — возвращает число символов, содержащихся в строке.
· int compareTo (String строка) — сравнивает объект String со строкой, указанной в качестве параметра, и возвращает целое число. Это число больше нуля, если строка, представленная текущим объектом, больше значения параметра; меньше нуля, если данная строка меньше значения параметра, и равно нулю, если строки совпадают.
· char charAt (int позиция) — возвращает символ, расположенный в строке в позиции, указанной в качестве параметра.
· char [] toCharArray () — преобразует строку в массив символов. В процессе выполнения данного метода создаётся новый массив.
· String concat (String строка) — создаёт новую строку, являющуюся конкатенацией строки, представленной данным объектом String, и строки, переданной в качестве параметра.
· String toUpperCase () — преобразует все символы строки в символы верхнего регистра. Если говорить точно, то в результате действия метода создается новая строка, содержащая преобразованные символы.
· String toLowerCase () — преобразует все символы строки в символы нижнего регистра.
· String replace (char символ_1, char символ _2) — заменяет все вхождения символа_1 символом_2.
· String trim () — удаляет все пробелы в начале и в конце строки.
К сожалению, среди методов класса String нет метода, «обратного» charAt (), который бы помещал заданный символ в указанную позицию. Поэтому, если вам необходимо заменить в строке один или несколько символов, приходится пользоваться способом, подобным следующему:
String str1 = new String (“sleep”);
String str2;
char char_form [];
char_form = str1.toCharArray ()
char_form [1] = ‘w’;
str2 = new String (char_form);