Книги в продаже (аннотация + содержание + отрывок)

Дж. Бишоп
ЭФФЕКТИВНАЯ РАБОТА: JAVA 2.
Цена: 154 р.

Источник: Издательский дом 'ПИТЕР'
Разделы: Java, J++
Подробнее: Информация от издателя (открывается в новом окне)
Заказ: Оформление покупки (открывается в новом окне)
      Предлагаемое издание посвящено вопросам программирования на языке Java. Учебный курс начинается с изложения общих принципов программирования, а также базовых сведений о языке Java 2, его основных библиотеках и утилитах. Затем читатели перейдут к изучению таких важных тем, как структуры данных, разработка объектно-ориентированного программного обеспечения, структурное программирование, создание графического пользовательского интерфейса, организация обработки событий, реализация сетевых функций, а также одновременное использование в программе несколь
      ких подпроцессов. Автор предлагает подборку протестированных примеров, в которых рассматриваются пути решения реальных задач. Благодаря детальному описанию алгоритма легко понять код каждой программы. Весьма полезными для читателей окажутся рисунки, на которых демонстрируются результаты выполнения программ. Каждую главу завершает перечень вопросов и задач, которые позволят проверить и закрепить полученные знания. Книга предназначена для начинающих программистов.
     
     
     
      Содержание
      Предисловие к третьему изданию
      ГЛАВА 1. Введение
      1.1. Добро пожаловать в Java
      1.2. Разработка программного обеспечения
      1.3. Методика
      1.4. Начинаем работать с Java
      Резюме
      Вопросы
      ГЛАВА 2. Простые программы
      2.1. Демонстрационные программы
      2.2. Структура программы
      2.3. Основы объектного ориентирования
      2.4. Знакомимся с методами вывода
      2.5. Простые вычисления
      Резюме
      Вопросы
      Задачи
      ГЛАВА 3. Типы и методы
      3.1. Поговорим о типах
      3.2. Повторение с помощью цикла for
      3.3. Создание методов
      3.4. Передача параметров и возвращение результатов
      3.5. Типизированные методы
      3.6. Логический тип boolean
      3.7. Практикум 1. Доставка пиццы 2U
      Резюме
      Вопросы
      Задачи
      ГЛАВА 4. Ввод и вывод
      4.1. Интерактивный ввод данных
      4.2. Дружественный интерфейс ввода-вывода
      4.3. Создание пакетов и доступ к ним
      4.4. Организация выбора посредством оператора if-else
      4.5. Ввод данных в файл и вывод данных из файла
      4.6. Обработка исключений
      Резюме
      Вопросы
      Задачи
      ГЛАВА 5. Управление потоком
      5.1. Требования к программе
      5.2. Циклы while и do с выходом по условию
      5.3. Исключения, определяемые пользователем
      5.4. Тип char
      5.5. Оператор switch
      5.6. Практикум 2. Игра "Камень-ножницы-бумага"
      Резюме
      Вопросы
      Задачи
      ГЛАВА 6. Массивы и таблицы
      6.1. Простые массивы
      6.2. Таблицы
      6.3. Класс Graph
      6.4. Сортировка и поиск
      6.5. Таблицы, не зависящие от класса
      Резюме
      Вопросы
      Задачи
      ГЛАВА 7. Форматирование
      7.1. Строки и их обработка
      7.2. Разделители и оболочки
      7.3. Структура класса Stream
      7.4. Форматирование чисел
      7.5. Даты, календари и время
      Резюме
      Вопросы
      Задачи
      ГЛАВА 8. Объекты: применение на практике
      8.1. Разработка объектно-ориентированной программы
      8.2. Свойства объектов
      8.3. Списки и итераторы
      8.4. Практикум 3. Кофейный магазин Нельсона
      Резюме
      Вопросы
      Задачи
      ГЛАВА 9. Абстракция и наследование
      9.1. Способы использования классов
      9.2. Наследование
      9.3. Абстракция через интерфейсы
      9.4. Абстрактные методы и классы
      9.5. Практикум 4. Ветеринарные бирки
      9.6. Сериализация
      Резюме
      Вопросы
      Задачи
      ГЛАВА 10. Графика и пользовательские интерфейсы
      10.1. Введение в awt и Swing
      10.2. Размещение графики в окне
      10.3. Компоновка пользовательского интерфейса
      Резюме
      Вопросы
      Задачи
      ГЛАВА 11. Управление событиями
      11.1. Взаимодействие с текстовыми полями
      11.2. События слушатели и обработчики событий
      11.3. Практикум 5. Разработчик флагов
      11.4. Работа с последовательностями событий
      11.5. Практикум 6. Касса супермаркета
      11.6. Практикум 7. Программа "Конвертер валют", использующая пакет Swing
      Резюме
      Вопросы
      Задачи
      ГЛАВА 12. Апплеты в действии
      12.1. От приложения к апплету
      12.2. Апплеты в броузерах
      12.3. Звук и изображения
      12.4. Практикум 8. Проект по охране природы
      Резюме
      Вопросы
      Задачи
      ГЛАВА 13. Работа с несколькими подпроцессами
      13.1. Работа с несколькими подпроцессами. Введение
      13.2. Назначение подпроцессов
      13.3. Синхронизация работы подпроцессов
      13.4. Класс Display
      13.5. Практикум 9. Использование в музее аудиоплееров
      Резюме
      Вопросы
      Задачи
      ГЛАВА 14. Работа в сети
      14.1. Соединение через Internet
      14.2. Порты и сокеты
      14.3. Практикум 10. Система Chat
      14.4. Подключение к базам данных
      14.5. Доступ к удаленным объектам
      14.6. Практикум 11. Информационная система аэропорта
      Резюме
      Вопросы
      Задачи
      ГЛАВА 15. Структуры данных и алгоритмы
      15.1. О структурах данных
      15.2. Линейный и двоичный поиск
      15.3. Ускоренная сортировка Quicksort и эффективность
      15.4. Стеки и очереди
      15.5. И вновь связные списки
      15.6. Битовые множества
      Резюме
      Вопросы
      Задачи
      ПРИЛОЖЕНИЕ А. Обозначения, используемые в схемах
      ПРИЛОЖЕНИЕ Б. Перечень описаний конструкций языка Java
      ПРИЛОЖЕНИЕ В. Список программ, апплетов и классов
      ПРИЛОЖЕНИЕ Г. Ответы на вопросы для самоконтроля
      Предметный указатель
     
     
     
     
     
      ОТРЫВОК
     
     
     
      ГЛАВА 2
      Простые программы
      В этой главе мы рассмотрим структуру программ, написанных на языке Java, и поговорим о том, как согласуются между собой их фрагменты. Три тщательно подобранных примера позволят вам познакомиться с основами объектно-ориентированного программирования. Изучив материал главы, вы сможете самостоятельно написать простую программу. Предлагаемые в ниже программы будут использоваться при решении последующих задач.
      2.1. Демонстрационные программы
      В начале главы представлены три небольшие программы, которые иллюстрируют различные аспекты программирования на языке Java. Первая выводит текстовую информацию на экран, а вторая и третья демонстрируют, какие возможности обеспечивает язык Java при работе с графикой и объектами.
      Пример 2.1. Welcom
      Наша первая задача - вывод на экран сообщения "Welcome to Java Gently!". Программа, выполняющая данную операцию, имеет следующий вид:
      class Welcome {
      /*Программа Welcome Дж. М. Бишоп, декабрь 1996 г.
      * ----------------- Java 2 апрель 2000 г.
      * Простая программа, выводящая текстовое сообщение на экран.
      */
      Welcome () {
      System.out.println("Welcome to Java Gently!");
      }
      public static void main (String [] args) {
      new Welcome ();
      }
      }
      В результате выполнения данной программы на экран будет выведено сообщение :
      Welcome to Java Gently!
      На данном этапе следует обратить внимание на следующие моменты. Текст между символами /* и */ называется комментарием и используется для того, чтобы пояснить читателю, каковы функции программы. Комментарии не обрабатываются компьютером. За командой println в кавычках следует информация, которая должна быть выведена на экран. Остальной код - это основная часть Java-программы. В дальнейшем мы изучим ее более подробно.
      Упражнение.
      Запустите программу Welcome (как это сделать, рассказывается в разделе 1.4). Измените ее таким образом, чтобы выводимое на экран сообщение включало ваше имя, например: "Welcome to Java, Peter!". Поэкспериментируйте: модифицируйте программу так, чтобы приветствие на экране располагалось в нескольких строках или выделялось подчеркиванием.
      Пример 2.2. Рисование флага
      Одно из достоинств языка Java - наличие встроенных средств, позволяющих работать с графикой и цветом, использовать анимацию, звук и т.д. Следующая программа выводит на экран изображение флага.
      import java.awt.*; import java.awt.event.*;
      class FlagMaker1 extends Frame {
      /* Программа, создающая изображение флага. Дж.М.Бишоп, апрель 2000 г.
      * --------------------------------------
      * Иллюстрирует вывод цветного графического изображения.
      */
      FlagMaker1 () {
      Add ("Center", new Flag ());
      //Завершает программу при закрытии окна.
      addWindowListener (new WindowAdapter (){
      public void windowClosing(WindowEvent e) {
      System.exit (0);
      }
      });
      //Задает заголовок и размер фрейма, активизирует функцию рисования paint.
      setTitle ("A Flag");
      setSize (300, 200);
      setVizible (true);
      }
      public static void main (String [ ] args) {
      new FlagMaker1 ();
      }
      }
      class Flag extends Canvas {
      public void paint (Graphics g) {
      //Рисует флаг, используя цветные прямоугольники.
      g.setColor (Color.black);
      g.fillRect (40,40,200,40);
      g.setColor (Color.red);
      g.fillRect (40,80,200,40);
      g.setColor (Color.yellow);
      g.fillRect (40,120,200,40);
      //Подпись под рисунком.
      g.setColor (Color.black);
      g.drawString ("Germany",100,180);
      }
      }
      Результат работы программы показан на рис. 2.1 (к сожалению, в черно-белом варианте).
      Программа FlagMaker1 имеет несколько больший объем, чем программа Welcome, и содержит два класса -FlagMaker1 и Flag. Первый выполняет вспомогательные функции при создании нового окна для отображения флага. Основная задача программы решается с помощью метода paint класса Flag. Каждая из строк наподобие
      g.fillRect (40, 80, 200, 40);
      рисует один из цветных прямоугольников. Числа в скобках - это размер прямоугольника в пикселях (экран может иметь ширину до 600 пикселей). Элементы списка, расположенного после метода fillrect, имеют следующие значения:
      координата Х левого верхнего угла прямоугольника;
      координата Y левого верхнего угла прямоугольника;
      ширина прямоугольника;
      высота прямоугольника.
      Изменяться будет только значение координаты Y, поскольку элементы рисунка создаются сверху вниз. Более подробно возможности Java по работе с графикой рассматриваются в главе 10.
      Оставшаяся часть программы содержит инструкции Java, обеспечивающие доступ к графическим средствам этого языка программирования, которые не имеют непосредственного отношения к нашей задаче. Вот краткий перечень предоставляемых ими возможностей:
      передача в программу графических пакетов (awt и awt.event);
      закрытие окна;
      расположение флага в центре окна (или фрейма);
      создание графического окна определенного размера и с определенным заголовком.
      Пример 2.2 иллюстрирует употребление комментариев второго типа - однострочных, вводимых между символами //. Java позволяет использовать любой из описанных нами типов комментариев. Преимущество однострочного комментария заключается в том, что он автоматически завершается по достижении конца строки. Однако многие программисты считают, что у комментариев первого типа более элегантный вид. В таких комментариях принято располагать звездочку и косую */, которые закрывают комментарий, под символами /*, которые его открывают.
      Умение работать в графической среде является очень важным для программиста, а для этого необходимо изучить множество функций (информацию о большинстве из них вы при необходимости найдете в справочнике). Поэтому мы пока не будем останавливаться на возможностях Java по обработке графики (этот материал изложен во второй части книги), а сосредоточим внимание на написании обычных объектно-ориентированных программ.
      Упражнение.
      Программа FlagMaker1 выводит германский флаг с черной, красной и желтой полосами. Модифицируйте ее так, чтобы она выводила другой подобный флаг, например Нидерландов (красный, белый, синий) или Эфиопии (зеленый, желтый, оранжевый). Измените размер окна и флага таким образом, чтобы увеличился размер результирующего рисунка.
      Пример 2.3. Лавка древностей
      Цель нашего третьего примера - продемонстрировать, что представляет собой объектно-ориентированная программа, написанная на языке Java. Объекты хранят информацию о предметах из реального мира (антикварных вещах), а каждый класс объектов определяет, какая функция должна быть выполнена по отношению к ним. Предположим, нам нужно составить перечень товаров, предлагаемых в лавке древностей. В очень простой программе, которая позволяет решить данную задачу, мы создадим три объекта класса Curio (древность) и осуществим вывод их значений (каковыми является стоимос
      ть различных древностей). Поскольку в дальнейшем эта программа будет совершенствоваться, назовем ее CurioStore1.
      class CurioStore1 {
      /* Curio Store No. 1 Дж M Бишоп, апрель 2000
      *-----------------
      * Иллюстрирует структуру объектно-ориентированной программы.
      */
      //Объявляет три объектные переменные.
      Curio mugs, tshirts, carvings;
      //Конструктор - это та часть программы, с которой начинается
      //ее исполняемая часть.
      CurioStore1 () {
      //Создает три объекта с различными начальными значениями.
      mugs = new Curio("Traditional mugs", 6, "beaded in Ndebele style");
      tshirts = new Curio("T-shirts", 30, "sizes M to XL");
      carvings = new Curio("Masks", 80, "carved in wood");
      //Выводит на экран заголовок.
      System.out.println("The Polelo Curio Store sells\n");
      //Выводит на экран значения, содержащиеся в каждом объекте.
      mugs.write();
      tshirts.write();
      carvings.write();
      }
      //Каждая программа должна содержать метод main.
      public static void main (String [ ] args) {
      //Выполнение программы начинается с конструктора.
      new CurioStore1 ();
      }
      }
      class Curio {
      //Объявляет переменные, соответствующие древностям.
      String name;
      int price;
      String description;
      //Конструктор копирует начальные значения в объектные переменные.
      Curio (String n, int p, String d) {
      name = n;
      price = p;
      description = d;
      }
      //Метод, который осуществляет вывод значений объектных переменных на экран.
      void write () {
      System.out.println(name + " " + description + " for G" + price);
      }
      }
      В результате выполнения программы мы получим следующие данные:
      The Polelo Curio Store sells
      Traditional mugs beaded in Ndebele style for G6
      T-shirts sizes M to XL for G30
      Masks carved in wood for G80
      Программа CurioStore1 по структуре подобна FlagMaker1. Она содержит два класса -CurioStore1 и Curio. Метод main в обоих случаях служит "начальной точкой" конструктора программы: с этого места начинается ее реальная работа. В программе объявляются и создаются три объекта, а затем их значения выводятся на экран.
      Каждой древности присваиваются три значения -name, price и description (имя, цена и описание). В классе Curio эти значения копируются в объект, так что они будут доступны, когда нам потребуется вывести их на экран. Обратите внимание на то, что порядок значений при выводе отличается от того, который был установлен при создании объектов (т.е. имя, описание, цена, а не имя, цена, описание).
      Как мы вскоре увидим, классы, подобные Curio, способны описывать объекты реального мира. Внутри программы, такой как CurioStore1 (определена как класс), создаются объекты класса Curio.
      Упражнение.
      Пользуясь образцом, который дан в программе, добавьте четвертую древность в базу данных магазина, например wovenBaskets (плетеные корзины). Установите для нее цену, введите описание и выполните все действия, которые нужны для создания объекта и его вывода на экран.
      2.2. Структура программы
      Базовые элементы
      Приступая к изучению языка Java, мы в первую очередь рассмотрим, как записывать инструкции, из которых состоит программа. Для этого нам необходимо ознакомиться с рядом элементов языка. Некоторые уже известны вам из примеров предыдущего раздела.
      Термин программа используется для описания совокупности классов, которая может быть откомпилирована и запущена для выполнения.
      Класс представляет собой совокупность переменных и методов.
      Объект создается на основе класса посредством оператора new. Процесс его создания называется инициализацией.
      Переменная содержит значение, с которым может работать метод. Переменные могут иметь как простые значения (price), так и целые объекты (carvings).
      Идентификатор - это имя единицы языка Java, такой, например, как класс. Примерами могут служить имена CurioStore1 и carvings.
      Ключевым называется слово, которое имеет особое значение в языке Java и не может быть использовано как идентификатор (например, class или new).
      Работа программы заключается в выполнении операторов, из которых она состоит. Оператор вызывает определенное действие: инициализацию объекта, активизацию метода, вывод сообщения и т.д.
      Метод определяется идентификатором и состоит из переменных и операторов. Метод активизируется путем вызова соответствующего идентификатора. Примерами являются main, write и paint.
      Каждый класс имеет специальный метод, называемый конструктором, который активизируется, когда инициализируются объекты или классы.
      Метод может иметь различные варианты, в зависимости от значений, которые определяются в круглых скобках, - параметров.
      На рис. 2.2 показана стандартная структура программы. На данном этапе изучения Java нет необходимости немедленно вникать во все, что касается элементов этого языка программирования: мы детально рассмотрим каждый их в ходе изучения.
      Диаграммы моделирования
      На рис. 2.2 отсутствует объект: где же он? Объект, на котором основывается программа, инициализируется в методе main посредством оператора
      new Welcome ();
      Использование объекта в Java-программе демонстрируется с помощью диаграмм моделирования. Вы не раз встретите их на страницах нашей книги. На рис. 2.3 показана диаграмма моделирования для программы Welcome. Условные обозначения заимствованы из универсального языка моделирования, а употребляемые дополнения предназначены для иллюстрации большего количества элементов на элементарном уровне.
      Class Welcome {
      /**Программа Welcome to Java! Дж. М. Бишоп, декабрь 1996 г.
      * -------------------------- Java 2 апрель 2000 г.
      * Простая программа, выводящая текстовое сообщение на экран.
      **/
      Welcome () {
      System.out.println("Welcome to Java!");
      }
      public static void main (String [] args) {
      new Welcome ();
      В диаграммах моделирования классы и объекты представлены с помощью прямоугольников, которые разделены на три части - для идентификаторов, переменных и методов. Класс, имеющий описания, обозначается пунктирной линией, а объект, который ссылается на содержимое области памяти, - сплошной линией. Сначала рассмотрим блок, относящийся к классу: класс называется Welcome, не содержит переменных и имеет только один метод -main. Справа изображен объект данного класса. Поскольку у него нет собственного идентификатора, ему присваивается идентификатор класса, который пр
      едваряется символом ":". Сам объект не содержит переменных, а включает только конструктор, который имеет то же имя, что и класс.
      Для демонстрации работы классов на диаграммах моделирования применяются прямоугольники с загнутыми углами (рис. 2.4). В качестве содержимого этих прямоугольников могут выступать Java-команды, сокращенные Java-команды и комментарии.
      Синтаксические формы языка Java
      Java является языком и, следовательно, имеет свой синтаксис. В книге для описания синтаксиса широко применяются таблицы и примеры. Ниже показано, какой формат надлежит использовать для обычной программы.
      В книге вы неоднократно встретите такие элементы:
      Простая программа
      class Classid {
      Classid () {
      data and control
      }
      public static void main (String [ ] argname) {
      new Classid ();
      }
      }
      Поговорим об особенностях данного способа подачи материала. В верхней строке указывается название рассматриваемого элемента языка Java. Далее демонстрируется его синтаксис. Шрифтовые выделения несут такую смысловую нагрузку:
      Курсивом выделяются идентификаторы или части программы более высокого уровня, вместо которых впоследствии подставляются соответствующие имена (так, на месте Classid может оказаться CurioStore1).
      Жирным начертанием выделяются ключевые слова языка Java (например, class или new). Такой способ выделения не используется в основном тексте.
      Обычное начертание назначается идентификаторам и символам, которые должны присутствовать в программе, однако не являются ключевыми словами (main или []). Вместо них нельзя подставить другие идентификаторы.
      Вернемся к программе Welcome из примера 2.1:
      class Welcome {
      Welcome () {
      System.out.println ("Welcome to Java!");
      }
      public static void main (String [ ] args) {
      new Welcome();
      }
      }
      Мы видим, что в данной программе подстановка была выполнена в трех местах: Classid был заменен именем Welcome, data and control - методом println, а argname (аргументы метода main) -args. Для наглядности данные элементы были подчеркнуты. Остальные элементы либо являются постоянными, либо зависят от имени класса.
      Семантика языка Java
      Синтаксис языка описывает, какую структуру должна иметь программа, какие элементы должны в ней использоваться и в каком порядке. Каждая комбинация объектов имеет свое значение, на основе которого мы определяем, какую операцию выполняет данный фрагмент программы. По этой причине наряду с синтаксисом мы изучим и семантику.
      Семантический анализ будет выполняться при рассмотрении синтаксиса отдельных элементов программы:
      Простая программа
      class Classid {
      Classid () {
      data and control
      }
      public static void main (String [ ] argname) {
      new Classid ();
      }
      }
      В Java инициализация программы осуществляется в конструкторе класса Classid посредством оператора new. Выполнение программы начинается с конструктора и заканчивается по достижении последнего оператора в последовательности.
      В подобных табличках значения элементов определяются в краткой форме. Более подробные сведения вы сможете почерпнуть из последующего текста.
      Идентификаторы и ключевые слова
      Имена в языке программирования Java называются идентификаторами. Идентификатор может включать буквы, символы подчеркивания и цифры, но начинаться он должен с буквы. В идентификаторе нельзя использовать символы пробела. Строчные и прописные литеры считаются в нем разными символами, поэтому CurioStore1 и Curiostore1 будут восприниматься как разные идентификаторы. Если идентификатор состоит из нескольких слов, то для облегчения восприятия рекомендуется начинать каждое слово с заглавной буквы.
      В программе Welcome идентификаторами являются следующие элементы:
     
      Welcome System out println
      main String args
     
      Принято соглашение о том, что все идентификаторы, за исключением идентификаторов класса, должны начинаться с маленькой буквы. Благодаря этому мы сможем мгновенно определить, что в предыдущем списке идентификаторы Welcome, System и String относятся к классам.
      Ключевые слова - это идентификаторы, зарезервированные для использования языком Java, которые не могут применяться программистом для других целей. Так, мы не можем присвоить программе имя "class", поскольку это слово зарезервировано. В программе Welcome употребляются следующие ключевые слова:
     
      class public static void new
     
      Ниже приведен полный список ключевых слов языка Java. Слова разделены на три основные категории и упорядочены по алфавиту. Нет необходимости запоминать данный перечень: новые ключевые слова вводятся по мере необходимости, а их краткое описание дается в конце каждой главы.
      Таблица 2.1. Ключевые слова Java
     
      Данные Управление Объекты
      Boolean break abstract
      byte case class
      char catch extends
      double default implements
      false do import
      final else instanceof
      float finally interface
      int for native
      long if new
      short return null
      static switch package
      transient synchronized private
      true throw protected
      void throws public
      try super
      while this
      volatile
      Символы языка Java
      Наряду с идентификаторами и ключевыми словами в Java-программе могут использоваться разнообразные символы. Наиболее часто употребляются следующие:
      Фигурные скобки применяются для объединения группы операторов в класс, метод и т. д.
      Круглые скобки используются для объединения группы параметров в список. Их применение допускается даже в том случае, если параметры отсутствуют. Примерами могут служить параметры в программе Welcome.
      Точка с запятой ставится в после каждого оператора.
      Запятая предназначена для разделения элементов списка независимо от того, заключены они в скобки или нет.
      Квадратные скобки являются отличительным признаком идентификаторов особого вида (более подробное описание будет приведено ниже).
      Фигурные скобки определяют в программе границы каждого класса или метода. Внешние элементы относятся к классу, а внутренние - к конструктору и методу main. Поскольку операторы отделены друг от друга точкой с запятой, они могут быть расположены в одной строке, однако чаще программисты на языке Java располагают их один под другим. Более подробную информацию об элементах Java-программы вы найдете в разделе 2.4.
      Создание и запуск программы
      Продолжая развивать тему, затронутую в данной главе, мы можем раскрыть значение каждой строки программы Welcome. Нам уже известно, как задавать имя класса. Мы используем также в программе конструктор и метод main. Этому методу предшествуют три ключевых слова -public static void, которые обязательно должны находиться в этой позиции. Материал о них изложен далее. Здесь достаточно сказать, что, когда виртуальная Java-машина активизируется при выполнении команды языка Java, как описано в главе 1, имя класса должно быть указано. Затем она ищет метод с именем main и характеристикам
      и public static void и задает запуск программы с этого места. Параметры синтаксиса таковы, что некоторые данные могут быть переданы программе при ее запуске. Данная особенность языка Java рассматривается в главе 4.
      Метод main создает объект класса программы и вызывает его конструктор. В нашем случае вызывается конструктор Welcome и выполняется оператор с именем println. Конструктор завершается символом } и передает управление в то место программы, из которого был вызван, т.е. методу main. Затем заканчивается выполнение этого метода и программа успешно завершает свою работу. На рис. 2.3 показана диаграмма моделирования для программы Welcome.
      2.3. Основы объектного ориентирования
      Классы
      Итак, Java-программы состоят из одного или нескольких взаимозависимых классов. Классы являются средствами описания свойств и возможностей реальных объектов, которые указаны в программе. Например, программа CurioStore1 содержит класс для описания древностей, а программа, предназначенная для создания изображения флага, - класс для флагов. Мы можем создать множество объектов на основе класса. Кроме того, классы могут образовывать иерархию (см. главу 9).
      Способ представления класса на диаграмме (рис. 2.5) зависит от необходимого уровня детализации. "id" - это сокращение английского слова "identifier" (идентификатор). Таким образом, Classid является обозначением идентификатора класса. Запомните: употребление в начале прописной буквы является обязательным.
      В конструкторе Curio, который также является методом, объявляются типы параметров, которые необходимы при инициализации того или иного предмета старины.
      Объекты
      Объект предназначен для точной реализации того, что задано в определении класса. Объекты обычно связаны с существительными, обозначающими такие предметы, как дерево, книга, флаг и т.д. Поэтому они обладают разнообразными свойствами и возможностями. Процесс создания новых объектов для программы заключается в создании нового экземпляра класса. Когда класс инициализируется, описываемые им свойства становятся переменными объекта, а возможности - методами объекта. В нашем примере объект Curio имеет три переменные -name, price и description - и два метода - конструктор и
      write. Переменные и методы класса называются его элементами. Пример объекта приведен на рис. 2.6.
      Переменные
      Для хранения значений переменной резервируется место в памяти компьютера. Значения эти впоследствии могут быть изменены. Например, простые переменные хранят числовые значения, а объектные переменные ссылаются на область памяти, где хранится объект. Объектные переменные не содержат символов, но выступают в качестве идентификаторов в сегменте переменных соответствующего класса или объекта. Значения простых переменных предваряются знаком равенства. Объектные переменные снабжаются сплошной стрелкой, указывающей на объект. (Все зависит от степени дет
      ализации, которая нам необходима.)
      Например, объект mugs, принадлежащий классу Curio, является частью объекта CurioStore1 (рис. 2.7).
     

Эффективная работа: Java 2. / Дж. Бишоп - СПб: Питер, 2002. - 592 с.

Экономика и управление | Право/a> | Бухгалтерский учет и налоги |