Java как центр архипелага - [5]
средствами, внешними по отношению к Java-системе (например, пи-
шется на языке C).
4.1.1.2. Наследование
Модель наследования в языке Java существенно отличается от мо-
дели C++. Во-первых, в Java нет множественного наследования.
Во-вторых, в языке предусмотрены средства для запрета дальней-
шего наследования (ключевое слово final перед определением
класса). В-третьих, в языке Java присутствует новое по отноше-
нию к C++ понятие интерфейса.
Интерфейс представляет собой набор описаний методов. Пример:
public interface Verbose {
public void drawOn (Graphics g);
public void printOn (OutputStream os);
}
public class Star extends Polygon implements Verbose {
public void drawOn (Graphics g) {
// Конкретная реализация отрисовки
}
public void printOn (OutputStream os) {
// Конкретная реализация печати
}
}
public class Text extends StringBuffer implements Verbose {
public void drawOn (Graphics g) {
// Конкретная реализация отрисовки
}
public void printOn (OutputStream os) {
// Конкретная реализация печати
}
}
public class Blackboard extends Canvas {
public void drawVerbose (Verbose d) {
Graphics g = getGraphics ();
d.drawOn (g);
}
}
Интерфейс Verbose содержит два метода. Первый предназначен для
рисования в графическом контексте, второй - для распечатки в
выходной поток.
Класс Star предствляет собой подкласс многоугольников
(Polygon). Помимо прочего, мы хотим рисовать об®екты этого
класса на доске (Blackboard) и выводить их описание в файл.
Для об®ектов класса Text мы хотим иметь возможность начертать
текст на доске и выводить его в файл.
Класс Blackboard - наследник класса Canvas, специально предназ-
наченного для рисования. Как мы видим, этот класс с помощью
единственного метода справляется с рисованием об®ектов, не име-
ющих общего предка (кроме класса 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, разумеется, присутствуют массивы. Эти массивы ти-
пизированы. Декларация
Point myPoints[];
описывает переменную myPoints как массив об®ектов типа Point.
Завести массив определенного размера можно с помощью инструкции
вида
myPoints = new Point[10];
Значения элементов массива при этом устанавливаются равными
специальной величине null.
Размер массива может быть получен во время выполнения програм-
мы:
howMany = myPoints.length;
Других структурных типов (не являющихся об®ектами) в языке Java
нет, то есть нет структур, об®единений и т.п. Нет в Java и ука-
зателей.
Отметим, что строки символов являются об®ектами типа String
(текстовые константы) или StringBuffer (изменяемые строки).
Пример,
String hello = "Hello world!";
4.1.3. Пакеты
Классы в языке Java об®единяются в пакеты. Все классы, входящие
в один пакет, являются дружественными по отношению друг к дру-
гу, то есть имеют взаимный доступ к переменным и методам, если

Книга посвящена разработке программ для мобильных устройств под управлением операционной системы Android. Рассматривается создание приложений с использованием системных компонентов и служб Android. Приведены базовые данные о структуре приложений, об основных классах и их методах, сопровождаемые примерами кода. Часть 1 содержит шесть глав, описывающих основные принципы создания приложений, пользовательский интерфейс, полномочия приложений, а так же базовые классы: Activity, Intent, Fragment. Книга предназначена для программистов, владеющих языком программирования Java и желающих освоить написание приложений, работающих под ОС Android.

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.

Эта книга научит вас, как разрабатывать программное обеспечение для платформы J2ME компании «Sun Microsystems». Эта книга придерживается стиля учебного пособия, это не справочное руководство.Цель — дать вам твердую основу в понятиях и техниках, которая даст вам возможность решиться на самостоятельную разработку качественных приложений.

Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000.

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.

Система сборки программ, используемая во FreeBSD, имеет значительно большие возможности, чем те, которые мы задействовали. Какие это возможности и как их использовать в своих портах?