Java как центр архипелага | страница 10
единственного метода справляется с рисованием об®ектов, не име-
ющих общего предка (кроме класса Object).
Таким образом, с помощью интерфейсов можно компенсировать от-
сутствие множественного наследования. В контексте наследования
интерфейс можно рассматривать как абстрактный класс, не содер-
жащий данных.
4.1.1.3. Жизненный цикл об®екта
Об®екты создаются с помощью оператора new. Инициализация об®ек-
та производится с помощью соответствующего конструктора. Эти
операции разделить нельзя - за new следует конструктор. Пример.
Point myPoint = new Point ();
Других способов создания об®ектов (кроме оператора new) язык
Java не предоставляет.
Об®ект существует до тех пор, пока на него есть ссылки (то есть
пока он прямо или косвенно доступен хотя бы из одной перемен-
ной). В языке отсутствуют явные средства удаления об®ектов.
После того, как об®ект стал недоступен, он оказывается кандида-
том для утилизации сборщиком мусора.
Об®ект может стать недоступным, если хранившей его переменной
присвоено новое значение или если эта переменная перестала быть
доступной (произошел выход из блока). Пример.
Point p = new Point (100.0, 100.0);
. . .
p = new Point (1.0, 1.0);
// На точку с координатами (100, 100) ссылок больше нет
{
String s = new String ("Local string");
System.out.println (s);
}
// На строку "Local string" ссылок больше нет
В момент утилизации об®екта сборщиком мусора будет вызван метод
finalize. Из-за того, что сборщик мусора работает в фоновом ре-
жиме, вызов finalize является асинхронным.
4.1.2. Примитивные типы данных
В языке Java существует набор встроенных типов данных, которые
не являются об®ектами. Их не так много.
Представление чисел в языке Java фиксировано и, тем самым, не
зависит от аппаратной платформы.
- целые числа:
- - byte - 8 бит,
- - short - 16 бит,
- - int - 32 бита,
- - long - 64 бита.
Все числа со знаком, спецификатор unsigned в языке отсутствует.
- числа с плавающей точкой:
- - float - 32 бита,
- - double - 64 бита.
Представление должно соответствовать стандарту IEEE 754.
- char
Значение типа char есть 16-разрядное число без знака (диапазон
0-65535). Кодировка соответствует стандарту Unicode. В резуль-
тате с самого начала закладывается здоровая основа для решения
проблемы локализации Java-программ.
- boolean
Содержит значения true и false, которые не могут быть преобра-
зованы в другой тип.
В языке Java, разумеется, присутствуют массивы. Эти массивы ти-