the bluej tutorialthe bluej tutorial version 1.2 for bluej version 1.1.x michael kölling school of...

31
The BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav Yakovenko.

Upload: others

Post on 04-Jan-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

The BlueJ Tutorial

Version 1.2

for BlueJ Version 1.1.x

Michael Kölling School of Network Computing

Monash University Translated into Russian by Vyacheslav Yakovenko.

Vyacheslav V Yakovenko
Page 2: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

Учебное пособие по BlueJ

Версия 1.2

Для BlueJ версий 1.1.x

Майкл Кёллинг

School of Network Computing Monash University

Русский перевод, Вячеслав Яковенко

Vyacheslav V Yakovenko
Page 3: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

3

Предисловие ................................................................................................................. 5 О BlueJ........................................................................................................................ 5 Для кого это руководство......................................................................................... 5 Авторские права и лицензии.................................................................................... 5 Обратная связь........................................................................................................... 6

Стартуем ....................................................................................................................... 7 Установка................................................................................................................... 7 Требования к системе............................................................................................... 7 Как получить BlueJ ................................................................................................... 7 SDK, JDK и JRE ......................................................................................................... 7 Установка.................................................................................................................. 7 Запуск BlueJ ............................................................................................................... 8 Открытие проекта ..................................................................................................... 8

Основы – редактирование/ компиляция/ выполнение ........................................ 9 Рис.1: Главное окно BlueJ ........................................................................................ 9 Создание объектов .................................................................................................... 9 Рис.2: Операции над классами (контекстное меню)............................................ 10 Рис.3: Создание объектов без параметров ............................................................ 11 Рис.4: Экземпляр на панели объектов................................................................... 11 Выполнение ............................................................................................................. 12 Рис.5: Контекстное меню экземпляра класса ....................................................... 12 Рис.6: Результат вызова метода ............................................................................. 12 Рис.7: Диалог вызова метода с параметрами ....................................................... 13 Редактирование класса ........................................................................................... 13 Компиляция ............................................................................................................. 14 Помощь при ошибках компиляции ....................................................................... 15 Рис.8: Ошибка компиляции и кнопка помощи..................................................... 15

Двигаемся дальше …................................................................................................ 16 Контроль .................................................................................................................. 16 Рис.9: Диалог контроля полей объекта ................................................................. 16 Рис.10: Окно проекта People2 ................................................................................ 17 Рис.11: Окно контроля со ссылкой на объект ...................................................... 18 Рис.12: Окно контроля с внутренним объектом .................................................. 18 Композиция ............................................................................................................. 19

Создание нового проекта ......................................................................................... 20 Создание каталога проекта..................................................................................... 20 Создание классов .................................................................................................... 20 Создание зависимостей .......................................................................................... 20 Удаление элементов................................................................................................ 21

Отладка ....................................................................................................................... 22 Установка точек прерывания ................................................................................. 22 Рис.13: Точка прерывания ...................................................................................... 23 Рис.14: Окно отладчика .......................................................................................... 23 Пошаговое прохождение кода ............................................................................... 24 Контроль над переменными................................................................................... 24 Останов .................................................................................................................... 25

Page 4: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

4

Создание независимого приложения .................................................................... 26 Создание апплетов .................................................................................................... 27 Запуск апплета......................................................................................................... 27 Рис.15: Диалог “Run Applet” .................................................................................. 27 Создание апплета .................................................................................................... 28 Тестирование апплета............................................................................................. 28

Другие операции........................................................................................................ 29 Открытие сторонних проектов в BlueJ ................................................................. 29 Добавление существующих классов в проект...................................................... 29 Вызов main и других статических методов .......................................................... 29 Работа с библиотеками ........................................................................................... 30

Итоги ........................................................................................................................... 31

Page 5: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

5

Предисловие

О BlueJ Это руководство является введением в среду программирования BlueJ. BlueJ

является средой разработки на языке Java , которая специально разработана для обучения на начальном уровне. Данная среда была разработана и воплощена в жизнь командой BlueJ из Университета Monash, Мельбурн, Австралия.

Дополнительная информация о BlueJ доступна в Internet по адресу http://www.bluej.monash.edu.

Для кого это руководство Это руководство предназначено для людей, желающих познакомиться с

возможностями среды разработки BlueJ. Оно не ставит перед собой цель объяснить конструктивные решения среды или научных исследований, проделанных для ее создания.

Данное руководство предполагает, что читатель знаком с языком программирования Java – и не ставит перед собой цель ознакомить и обучить пользователя программированию на Java.

Оно так же не является всеобъемлющим руководством. Многие детали остались вне его – ударение сделано, скорее, на краткость и четкость изложения, нежели на покрытие всех особенностей среды.

Многие части данного руководства содержат строку итогов, а 10 раздел является просто сборником всех итогов, для быстрого использования.

Авторские права и лицензии Система BlueJ и данное руководство свободны для распространения. Система и эта

документация могут быть свободно переданы кому-либо. Никакая часть системы BlueJ и данного руководства не могут быть проданы с

целью получения прибыли или включены в пакет, предназначенный для продажи без разрешения авторов.

Авторскими правами на BlueJ обладают M. Kölling and J. Rosenberg.

Page 6: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

6

Обратная связь Комментарии, вопросы, исправления, критика и другого типа обратная связь,

касающаяся BlueJ или данного руководства приветствуются и активно поощряются. Пожалуйста, обращайтесь к Michael Kölling (mailto: [email protected]).

Page 7: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

7

Стартуем

Установка BlueJ распространяется в виде архива классов Java, в «jar» формате. Установка

достаточно проста.

Требования к системе На Вашей системе должен быть установлен пакет Sun Microsystems JDK1.2.2 или

выше. Некоторые функции работаю лучше с JDK 1.3, поэтому он настоятельно рекомендуется. Если у Вас нет установленного JDK, Вы можете получить его на сайте Sun Microsystems по адресу: http://www.java.sun.com/j2se.

Как получить BlueJ Дистрибутивный файл с BlueJ носит имя bluej-xxx.jar, где xxx – номер версии.

Например: BlueJ версии 1.1.1 находится в файле bluej-111.jar, для установки Вы должны получить этот файл с сайта BlueJ: http://www.bluej.monash.edu.

SDK, JDK и JRE В некоторых случаях могут возникнуть затруднения связанные с различными

вариантами дистрибутивов: SDK, JDK и JRE пакетами Java. Вы должны установить последнюю версию Java 2 SDK (Software Development Kit). Термин JDK (Java Development Kit) – устаревшее наименование этого же пакета. Sun переименовала пакет в определенной стадии разработки, но иногда старое название продолжает использоваться. Так, например, если Вы установили Java 2 SDK v.1.3, то каталог, в который по умолчанию устанавливается, SDK носит название jdk1.3.

JRE (Java Runtime Environment) – отличается и является частью SDK, предназначенной, для выполнения Java приложений. Для BlueJ, является недостаточным. Нам необходим SDK так, как он включает инструменты разработки, используемые BlueJ. JRE устанавливается автоматически, как часть SDK.

Установка Windows: Выполните двойной щелчок мышью на файле bluej-xxx.jar. Если Ваша система не сконфигурирована на выполнение jar-файлов, двойной

щелчок мышью может не работать. В этом случае откройте окно DOS Command и следуйте инструкциям из Unix раздела.

Page 8: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

8

Unix: Запустите установку, выполнив следующую команду. ПРИМЕЧАНИЕ: в этом

примере используется имя файла bluej-111.jar – Вам же необходимо использовать имя файла с номером версии соответствующим тому, который вы получили.

<jdk-path>/bin/java –jar bluej-111.jar где, <jdk-path> - путь к каталогу, в который инсталлирован SDK. Далее появится окно, в котором Вы сможете указать директорию для BlueJ и

версию JDK, которую надо использовать для работы с BlueJ. Внимание: путь к каталогу, как и имя самого каталога с BlueJ не должны содержать пробелы, как например “Program Files”!

Щелкните мышью на Install. После завершения BlueJ будет установлена на Вашу систему.

Проблемы по установке системы Вы можете решить, посетив раздел FAQ на сайте BlueJ.

Запуск BlueJ Установщик создает пакетный файл bluej в каталоге BlueJ. Из GUI интерфейса Вы

можете запустить BlueJ просто двойным щелчком. Из командной строки (Unix или DOS) Вы можете запустить BlueJ с или без имен проекта в качестве аргумента:

$ bluej или $ bluej examples/people

Открытие проекта Проекты в BlueJ, как стандартные Java пакеты, являются директориями, которые

содержат файлы, принадлежащие конкретному проекту. Если Вы запустили BlueJ из командной строки с именем проекта в качестве

аргумента – он автоматически откроется. Если же Вы запустили BlueJ без аргументов, используйте меню Project – Open… для того, что бы выбрать и открыть проект.

Page 9: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

9

Основы – редактирование/ компиляция/ выполнение Для изучения этого раздела откройте проект people, который входит в пакет

установки BlueJ. Вы можете найти его в директории examples, находящейся в домашней директории BlueJ. После открытия проекта Вы увидите что-то похожее на окно, изображенное на Рис.1. Окно может выглядеть несколько иначе на Вашей системе, но отличия будут минимальными.

Рис.1: Главное окно BlueJ

Создание объектов Одна из основных особенностей BlueJ – это то, что Вы не только можете

выполнять все приложения, но также можете непосредственно взаимодействовать с конкретным объектом любого класса и выполнять их public методы. Выполнение метода в

Page 10: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

10

BlueJ обычно происходит путем создания объекта с последующим вызовом его метода. Это очень удобно в стадии разработки приложения – Вы можете тестировать классы индивидуально по мере их написания. Таким образом, нет необходимости выписывать полностью все приложение.

Примечание: Статические методы могут выполняться непосредственно без создания экземпляра класса. Одним из статических методов может быть метод “main”, таким образом, Вы можете совершать действия, которые обычно происходят в Java приложении – запускать приложение, просто выполняя статический “main” метод. Мы вернемся к этому позднее. Вначале мы проделаем более простые вещи, которые не могут быть обычно проделаны в среде Java. Прямоугольники, которые Вы видите в центральной части главного окна

(обозначенные Database, Person, Staff и Student) – пиктограммы классов входящих в это приложение. Вы можете вызвать контекстное меню с операциями применимыми к данному классу, выполнив щелчок правой клавишей мыши (Рис. 2). Операции представленные на рисунке – это конструкторы new, определенные для данного класса и операции предоставляемые средой BlueJ.

Рис.2: Операции над классами (контекстное меню)

Page 11: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

11

Далее мы создадим экземпляр класса Staff, для этого мы выполним щелчок правой клавишей мыши на пиктограмме Staff (как показано на Рис.2). Меню предоставляет два конструктора для создания объекта Staff, один с параметрами и один без. Вначале выберем конструктор без параметров. После чего появится диалоговое окно, как на Рис.3.

Рис.3: Создание объектов без параметров Этот диалог запрашивает имя объекта для его создания. В то же время

предполагается имя по умолчанию – stuff_1. Так как для экспериментов это имя подходит – просто нажимаем кнопку OK. Экземпляр класса Staff будет создан.

Как только экземпляр класса создан – он попадает на панель объектов (Рис.4). Это все, что необходимо для создания экземпляра класса: выбрать конструктор из контекстного меню, выполнить его, и Вы получите экземпляр на панели объектов.

Рис.4: Экземпляр на панели объектов Вы должны были заметить, что класс Person помечен, как <<abstract>> - он

является абстрактным классом. Вы должны были так же заметить (если Вы пробовали), что Вы не можете создать объект абстрактного класса – это соответствует спецификации языка Java.

Итог: Для создания экземпляра класса – выберете конструктор из контекстного меню.

Page 12: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

12

Выполнение Теперь, после того, как Вы создали объект, Вы можете выполнять его public

методы. Щелкнете правой клавишей мыши на объекте, и опять появится контекстное меню (Рис. 5). Меню отображает методы доступные для экземпляра и две специальные операции, предоставленные средой разработки (Inspect и Remove). Мы обсудим их позднее. В начале сосредоточимся на методах.

Рис.5: Контекстное меню экземпляра класса Вы видите методы getRoom и setRoom, которые назначают и возвращают

соответственно номер комнаты этого сотрудника. Попробуем вызвать getRoom, для этого просто выбираем его из меню. Появившийся диалог, отображает результат этого вызова (Рис. 6). В данном случае он содержит значение “(unknown room)”, так как комната для этого сотрудника не определена.

Рис.6: Результат вызова метода Методы, наследуемые от родительского класса, доступны через подменю. В

вершине меню присутствуют два подменю, одно с методами, унаследованными от Object, второе – от Person (Рис.5). Вы можете вызвать методы Persons (такие как getName), просто выбрав их из соответствующего подменю. Попробуйте. Вы заметите, что результат

Page 13: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

13

будет неопределенным: “(unknown room)”, это связано с тем, что Мы еще не определили имя этого сотрудника.

Теперь давайте попробуем определить комнату сотрудника. Этим мы продемонстрируем, как сделать вызов метода с параметрами (т.к. вызовы getRoom и getName возвращают значение, но используются без параметров). Появляющийся диалог предлагает Вам ввести параметры (Рис. 7).

Рис.7: Диалог вызова метода с параметрами Сверху в диалоге отображается интерфейс вызываемого метода, включая

комментарии и сигнатуру. Ниже располагается текстовое поле для ввода параметров. Сигнатура вверху окна свидетельствует о том, что обнаружен единственный параметр типа String. Введите новую комнату сотрудника в виде строки (включая кавычки) в текстовое поле и нажмите OK.

Т.к. метод не возвращает параметров - никакие диалоги больше не появляются. Вызовите метод getRoom снова и проверьте, действительно ли значение установлено правильно.

Потренируйтесь с созданием объектов и вызовом методов. Попробуйте вызвать конструктор с аргументами и другие методы пока не познакомитесь поближе с этими операциями.

Итог: Для выполнения метода выберете его из контекстного меню.

Редактирование класса До сих пор мы имели дело только с интерфейсом объектов. Теперь пришло время

заглянуть внутрь класса. Вы можете посмотреть реализацию класса, выбрав Edit Implementation из контекстного меню класса (Помните: контекстное меню появляется по правому щелчку на пиктограмме класса). Двойной щелчок на пиктограмме приводит к тем же результатам. В этом руководстве нет исчерпывающих данных о встроенном редакторе, но он достаточно прост в использовании. Особенности редактора будут описаны отдельно позднее. Теперь, откройте реализацию класса Staff. Найдите метод getRoom. Он возвращает номер комнаты сотрудника. Давайте изменим метод, добавив префикс “room”

Page 14: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

14

к результату функции (так чтобы метод возвращал, скажем “room G.4.24” вместо “G.4.24”). Мы можем сделать это, заменив строку

return room; на return “room “ + room; BlueJ полностью поддерживает спецификацию Java, поэтому нет ничего

особенного в том как реализовывать класс. Итог: Для редактирования исходного кода класса – дважды щелкните на пиктограмму класса.

Компиляция После вставки нового текста (до того как Вы сделает что-нибудь), проверьте

внешний вид проекта в главном окне. Вы заметите, что пиктограмма класс Staff изменилась. Штриховка помечает класс, который не был откомпилирован после последних изменений. Теперь вернемся в редактор.

Примечание: Вас может заинтересовать, почему пиктограмма класса не была заштрихована при первом открытии проекта. Это происходит потому, что классы проекта People поставляются уже откомпилированными. Часто проекты BlueJ распространяются не откомпилированными поэтому обращайте внимание на штриховку, когда впервые открываете проект.

На панели инструментов вверху окна редактора, располагаются кнопки для

наиболее часто используемых функций. Одна из них Compile. Эта кнопка позволяет Вам откомпилировать класс прямо из окна редактора. Щелкнете сейчас на кнопку Compile. Если Вы не допустили ошибок, внизу окна редактора появится сообщение, о том, что компиляция выполнена. Если вы допустили синтаксическую ошибку, строка, содержащая ее, будет подсвечена и сообщение об ошибке появится в информационной области. Попробуйте сейчас внести сознательно какую-либо ошибку, чтобы посмотреть, как это выглядит.

После удачной компиляции, закройте окно редактора. Примечание: Не существует острой необходимости принудительно сохранять исходный код. Он

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

Панель инструментов окна проекта также имеет кнопку Compile. Однако нажатие не нее приводит к компиляции всего проекта (В действительности же перекомпиляции подлежат только модифицированные классы и компиляция производится в правильной последовательности). Испытайте эту возможность, изменив два или более класса (так чтобы более одного класса были с заштрихованными пиктограммами) и затем щелкните на кнопку Compile. Если будет обнаружена ошибка в одном из классов – откроется окно редактора и положение ошибки с соответствующим сообщением будет отображено.

Page 15: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

15

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

Итог: Чтобы откомпилировать класс – щелкните кнопку Compile в редакторе. Чтобы откомпилировать проект – щелкните кнопку Compile в окне проекта.

Помощь при ошибках компиляции Очень часто у начинающих возникают проблемы с пониманием ошибок

компиляции. Мы попытались немного помочь им в этом. Откройте снова редактор с классом, содержащим ошибку, и запустите

компиляцию. Сообщение об ошибке должно появится в информационной области. В правом нижнем углу появится вопросительный знак, щелкнув на него, Вы сможете получить дополнительную информацию об этом типе ошибок (Рис.8).

Рис.8: Ошибка компиляции и кнопка помощи В данный момент дополнительная информация доступна не для всех ошибок, но

стоит попробовать т.к. многие из них уже описаны. Оставшиеся будут описаны и включены в будущие версии BlueJ.

Итог: Чтобы получить справку об ошибке компиляции – щелкните мышью на знак вопроса справа от ошибки.

Page 16: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

16

Двигаемся дальше … В этом разделе Вы познакомитесь с дополнительными возможностями BlueJ.

Возможностями далеко не обязательными, но очень часто используемыми.

Контроль Когда Вы выполняли методы объекта, Вы должны были заметить операцию Inspect

которая была доступна в дополнение к методам (Рис.5). Эта операция позволяет проверять состояние полей объекта. Попробуйте создать объект с определенными пользователем полями (например, Stuff, вызвав, конструктор с параметрами). Затем выберете Inspect из контекстного меню, после чего появится диалог, отображающий поля объекта и их значения (Рис.9).

Рис.9: Диалог контроля полей объекта Контроль полезен для быстрой проверки действия методов – мутаторов (методов

изменяющих состояние объекта). Т.о. действия контроля сходны с действием отладчика. В примере с объектом Stuff все поля простого типа (либо не объекты, либо строки).

Значение простых – встроенных типов языка Java могут быть отображены непосредственно в этом окне, и Вы можете видеть, возымел ли действие мутатор.

В более сложных ситуациях, значениями полей могут быть ссылки на определенные пользователем объекты. Для того, чтобы посмотреть это на примере мы должны открыть другой проект. Откроем проект People2, который так же включен в

Page 17: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

17

стандартную поставку BlueJ. Окно проекта People2 изображено на Рис.10. Как Вы могли заметить – этот пример содержит класс Address в дополнение к классам предыдущего примера. Одним из полей класса Person, является определенный пользователем тип Address.

Рис.10: Окно проекта People2 Следующее, что мы хотим попробовать, это проконтролировать поля-объекты. Для

этого создадим объект Stuff и затем вызовем метод setAddress этого объекта (Вы сможете найти его в подменю Person). Введите адрес. Исходный код объекта Stuff создаст объект класса Address и сохранит адрес в его поле address.

Теперь проверим объект Stuff. Результирующий диалог показан на Рис.11. Теперь объект Stuff содержит поле Address. Как Вы видите, его значение - <object reference>, что означает, что это сложный, определенный пользователем тип данных и его значение не может быть непосредственно отображено в этом списке. Для того чтобы теперь проверить адрес, необходимо выбрать поле address из списка и щелкнуть на кнопку Inspect в этом диалоге (Вы так же можете выполнить двойной щелчок в списке). Другое окно контроля откроется, отображая содержимое полей объекта Address (Рис.12).

Page 18: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

18

Рис.11: Окно контроля со ссылкой на объект

Рис.12: Окно контроля с внутренним объектом

Page 19: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

19

Если это выбранное поле так же объявлено, как public, вместо Inspect Вы можете щелкнуть Get. После этого полученный объект будет отправлен на панель объектов. Там Вы можете продолжить его исследования, обращаясь к его методам.

Итог: Контроль объекта позволяет производить первичную отладку, проверяя его содержимое.

Композиция Термин «композиция» - означает способность передавать объекты в качестве

параметров другим объектам. Поясним на примере: создадим объект класса Database (Вы могли заметить, что класс Database имеет только один конструктор без параметров, т.о. создать его экземпляр просто). Объект Database имеет возможность хранить список субъектов. В нем есть операции по добавлению новых лиц и отображению всех записанных в нем (название Database, безусловно, несколько преувеличено).

Если у Вас еще нет созданных объектов Stuff или Student – создаете их на панели объектов.

Теперь вызовем метод addPerson из объекта Database. Сигнатура укажет Вам, что в качестве параметра необходим объект типа Person. Помните: класс Person – абстрактный, поэтому не может быть ни одного экземпляра класса Person. Но благодаря наследованию, экземпляры классов Stuff и Student могут быть использованы в качестве объектов Person. Чтобы передать объект в качестве параметра, достаточно указать его имя (соответствующее имени на панели объектов), либо просто щелкнуть на самом объекте мышью. Щелкните затем OK, и операция будет выполнена. Теперь Вы можете вызвать метод listAll у объекта Database, чтобы убедиться в выполнении этой операции. Метод listAll выводит список субъектов на стандартный вывод в текстовом виде.

Теперь попробуйте это все с несколькими объектами. Итог: Объект может быть передан в качестве параметра простым щелчком мыши на его

пиктограмме.

Page 20: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

20

Создание нового проекта Этот раздел представляет краткий экскурс в создание нового проекта.

Создание каталога проекта Для создания нового проекта из меню выберете Project – New… Откроется диалог,

который позволит Вам указать имя и расположение нового проекта. Попробуйте выполнить это с любым именем проекта. После нажатия OK, будет создана директория с соответствующим именем и откроется пустое окно нового проекта.

Итог: Для создания нового проекта выберете New из меню Project.

Создание классов Вы можете создавать Ваши классы, щелкая на кнопку New Class в панели

инструментов в окне проекта. У Вас запросят имя класса, которое должно быть допустимым в Java идентификатором.

Вы также можете сделать выбор из четырех типов классов: abstract, interface, applet и “standard”. Этот выбор определит, какой шаблон будет задействован для создания вашего класса. Вы естественно сможете изменить этот тип простым редактированием класса (к примеру, добавив ключевое слово “abstract”).

После создания класса, он будет представлен пиктограммой в диаграмме. Различные цвета представляют разные типы классов. Например: голубой – обычный класс, светло голубой – abstract, зеленый – interface. Когда Вы откроете редактор с новым классом, Вы заметите, что скелет класса создан для облегчения начала работы. В этот момент времени исходный код синтаксически правилен. Он может быть откомпилирован (но не сможет много сделать – т.к. осмысленное содержимое отсутствует). Попробуйте создать несколько классов и откомпилировать их.

Итог: Для создания нового класса, щелкните на кнопку New Class и укажите его имя.

Создание зависимостей Диаграмма классов отображает зависимости между классами в форме стрелок.

Наследственные связи (“extends” или “implements”) отображаются двойными стрелками; связи типа “uses” – одинарными.

Примечание переводчика: вероятно в версии 1.1.2 линии стрелок заменены на пунктирную и сплошную.

Page 21: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

21

Вы можете добавить связи либо графически (непосредственно на диаграмме), либо непосредственно в исходном коде класса. Если Вы добавили связи на диаграмме – исходный код будет обновлен автоматически. Во втором случае, обновлена будет диаграмма.

Для того чтобы добавить связь, используя графический интерфейс – щелкните на необходимую стрелку и проведите ее от одного класса к другому. Это соответственно добавит ключевые слова “extends” или “implements” в исходный код, в зависимости от того, является ли цель классом или интерфейсом.

Добавление стрелки типа “uses” не влечет за собой мгновенных изменений в исходном коде, за исключением тех случаев, когда целевой класс является классом другого пакета. В этом случае генерируется выражение “import”, но мы еще не встречали этого в примерах. Указание стрелкой типа “uses” на класс, который в действительности не используется, приводит к генерации предупреждения о том, что связь уже задекларирована, но еще не используется.

Добавить связь руками просто: достаточно внести соответствующую корректировку исходного кода и сохранить класс. Помните, что класс сохраняется автоматически при закрытии окна редактора.

Итог: Чтобы провести стрелку – щелкните на нее в панели инструментов и перетащите ее в диаграмму, либо внесите изменения в код вручную.

Удаление элементов Чтобы удалить класс из проекта, выделите его и затем выберете Remove Class из

меню Edit. Вы так же можете выбрать Remove из контекстного меню класса. Чтобы убрать стрелку, выберете Remove Arrow из меню, и затем укажите на стрелку, которую Вы хотите удалить.

Итог: Чтобы удалить класс необходимо выбрать соответствующий пункт из контекстного меню. Для удаления стрелки необходимо выбрать Remove Arrow из меню Edit и щелкнуть на стрелке.

Page 22: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

22

Отладка Этот раздел представляет наиболее важные аспекты возможности отладки в BlueJ.

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

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

Во-первых, мы были вынуждены свести функциональность отладчика к трем задачам:

• Назначение точек прерывания; • Пошаговый проход по коду; • Проверка значений переменных.

В результате все три получились очень простыми. Мы попробуем их все. Для начала – откройте проект debugdemo, который находится в каталоге examples.

Он содержит несколько классов предназначенных специально для демонстрации отладчика – они не имеют смысла для каких-либо других целей.

Установка точек прерывания Установка точек прерывания позволяет Вам прервать выполнение в определенной

точке кода. После того, как прерывание осуществится, Вы сможете исследовать состояние объекта. Это часто помогает понять, что происходит в Вашем коде.

В редакторе, слева от текста, располагается зона для установки точек прерывания Рис.13. Вы можете установить их, просто щелкнув в этой области мышью. Небольшая пиктограмма “stop” отметит точку прерывания. Попробуйте это. Откройте класс Demo, найдите метод loop и установите точку останова где-нибудь внутри цикла for. пиктограмма “stop” появится в окне редактора.

Page 23: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

23

Рис.13: Точка прерывания Как только выполнение кода дойдет до этой строки – произойдет останов. Давайте

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

как на Рис.14.

Рис.14: Окно отладчика Подсвеченная строка указывает на строку, которая будет выполнена в следующий

момент. Итог: Для установки точки прерывания – щелкнете левой области редактора мышью.

Page 24: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

24

Пошаговое прохождение кода Теперь, после того как мы остановили выполнение, мы можем двигаться по шагам

сквозь код и наблюдать выполнение программы. Для того, чтобы выполнить следующую строку программы, щелкните кнопку Step в окне отладчика. Вы можете заметить, как изменилось окно редактора, подсвеченная строка сдвинулась. Каждый раз, когда вы будете щелкать Step, одна строка кода будет выполняться, а выполнение приостанавливаться снова. Заметьте также, что значения переменных в окне отладчика тоже изменяются, например значение переменной sum. Т.о. Вы можете продвигаться шаг за шагом и наблюдать, что при этом происходит. Если Вы устали от этого, Вы можете щелкнуть на точку прерывания снова, чтобы убрать ее. Затем щелкнуть Continue для продолжения работы приложения в обычном режиме.

Давайте попробуем все это в другом методе. Установите точку прерывания в классе Demo, методе carTest(), в строке:

places = myCar.seats(); Вызовите метод. Как только Вы достигнете точки прерывания, Вы остановитесь

перед строкой вызова метода seats() в классе Car. Щелчок на кнопке Step, приведет к тому, что Вы перескочите через всю строку. Но, давайте попробуем в этот раз использовать кнопку Step Into. В этом случае Вы попадете внутрь метода и сможете пройти его весь шаг за шагом. В данном случае мы попадаем внутрь метода seats() класса Car. Вы можете пройти его весь, пока не вернетесь в вызвавший его метод. Обратите внимание, как при этом меняется окно отладчика.

Step и Step Into действуют одинаково, если в строке нет вызова метода. Итог: Для пошагового прохождение кода используйте кнопки Step и Step Into в окне отладчика.

Контроль над переменными Во время отладки кода важно иметь возможность контролировать состояние

переменных. Делать это достаточно просто, и большинство операций Вы уже наблюдали. Нет

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

Вы можете выбрать методы в списке Call sequence, чтобы просматривать переменные другого активного объекта или метода. Попробуйте опять установить точку прерывания в методе carTest(). Слева в окне отладчика, Вы увидите список Call sequence. Он содержит следующее:

Car.seats Demo.carTest

Page 25: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

25

Это указывает на то, что Car.seats был вызван из Demo.carTest. Вы можете выбрать Demo.carTest, чтобы просмотреть его переменные.

Если Вы будете проходить мимо строки new Car(…), Вы увидите, что значение локальной переменной myCar отображено, как <object reference>. Все значения переменных-объектов, отображаются подобным образом (за исключением объектов String). Вы сможете наблюдать за состоянием таких переменных, дважды щелкнув на них. Проделав это, Вы попадете в окно состояния объекта, как было описано выше.

Итог: Контролировать переменные просто – они автоматически отображаются в окне отладчика.

Останов Иногда программа работает слишком долго, и Вас интересует все ли в порядке.

Может Вы попали в бесконечный цикл, а может быть все в порядке. В любом случае – надо иметь возможность проверить. Вызовите метод longloop() из класса Demo. Это бесконечный цикл.

Теперь мы хотим узнать, что происходит. Откройте окно отладчика, если оно еще не на экране. Между прочим, щелкнув на

вращающийся символ, обозначающий, что работает виртуальная машина, Вы сможете вызвать окно отладчика.

Примечание переводчика: Можно открыть окно отладчика из меню View – Show Debugger.

Теперь щелкните на кнопку Halt. Выполнение прервется, как если бы Вы вставили точку прерывания. Теперь Вы можете сделать пару шагов по программе и убедиться, что все в порядке. Вы можете использовать Continue и Halt столько раз, сколько Вам будет необходимо. Если Вы не хотите продолжать работу приложения, просто щелкните на кнопку Terminate, и выполнение прекратится. Terminate нельзя использовать часто, т.к. эта операция оставляет объекты в неопределенном состоянии, поэтому это средство лучше применять для конечной остановки приложения.

Итог: Halt и Terminate могут использоваться для временной или постоянной остановки приложения.

Page 26: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

26

Создание независимого приложения BlueJ может создавать выполняемые jar-файлы. Выполняемый jar-файл запускается

на некоторых системах двойным щелчком мыши на файле (например, в MS Windows), или используя командную строку: java –jar <file-name>.jar (из командной строки Unix или DOS).

Мы попробуем это с проектом hello. Откройте его из каталога examples. Убедитесь в том, что проект откомпилирован. Затем из меню Project выберете пункт Export….

Откроется диалог, который позволит Вам указать формат сохранения приложения. Укажите “jar file”, чтобы создать выполняемый jar-файл. Этот класс должен иметь правильно определенный main method (с соответствующей сигнатурой public static void main (Strin[] args)).

В нашем случае выбрать главный класс просто: он всего один в проекте. Укажите Hello из всплывающего меню. Если Вы открыли другой проект – укажите тот класс, в котором есть метод “main”, который Вы хотите выполнять.

Обычно, Вы не включаете исходные тексты в исполняемые файлы. Но Вы можете это сделать, если хотите распространять так же и исходный код.

Щелкните Continue. Далее откроется диалог, позволяющий указать имя jar-файла. Напечатайте hello и щелкните OK. Создание jar-файла завершено.

Вы можете выполнить двойной щелчок на файле, только если приложение использует графический интерфейс (GUI). Наш пример задействует только стандартный ввод/вывод, поэтому приложение запускается из терминала. Давайте попробуем проделать это.

Откройте окно терминала либо DOS Window. Затем перейдите в каталог, в котором Вы сохранили Ваш jar-файл. Если Java корректно установлена на Вашей машине – напечатайте:

java –jar hello.jar приложение будет выполнено. Итог: Для создания независимого приложения используйте: Project – Export… .

Page 27: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

27

Создание апплетов

Запуск апплета BlueJ позволяет создавать апплеты так же как и приложения. Мы включили

несколько апплетов в поставку BlueJ. Для начала попробуем запустить один из них. Откройте appletClock из каталога examples.

Вы увидите, что проект содержит только один класс – Clock. Пиктограмма класса помечена “WWW”, что говорит о том, что это апплет. Выберете Run Applet из контекстного меню класса.

Откроется диалог, который позволит Вам, указать дополнительную информацию (Рис.15).

Рис.15: Диалог “Run Applet” Вы видите, что можно выбрать следующие варианты: запустить апплет в

appletviewer, в броузере или создать Web страницу не запуская апплет. Оставьте текущие настройки и щелкните OK. После нескольких секунд апплет запустится.

Page 28: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

28

Просмотрщик апплетов устанавливается автоматически вместе с JDK, т.о. это всегда гарантирует, что его версия соответствует версии компилятора. В броузере все по другому – он может использовать другую версию Java и это может приводить к проблемам совместимости. Однако в большинстве случаев все должно работать нормально.

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

Итог: Для запуска апплета – укажите Run Applet из контекстного меню.

Создание апплета После того как мы попробовали запустить апплет, давайте, попробуем создать

новый. Создайте новый класс, указав его тип, как “Applet”. Откомпилируйте его и

запустите. Неплохо, не правда ли? Апплеты как и другие классы создаются по шаблону, содержащему правильный

исходный код. Для апплетов этот код состоит из нескольких строк текста. Вы можете открыть теперь редактор и наполнить апплет осмысленным кодом.

Вы видите, сто скелет содержит несколько типичных для апплета методов с соответствующими комментариями. В данном примере, основной код содержится в методе paint.

Итог: Для создания апплета – щелкните кнопку New Class и укажите тип “Applet”.

Тестирование апплета В некоторых случаях бывает полезно создать экземпляр апплета на панели

объектов (точно так же как и в случае с обычным классом). Вы можете сделать это, выбрав, конструктор из контекстного меню апплета. С панели объектов Вы можете выполнять весь апплет, а можете только необходимые методы. Это очень удобно, когда надо тестировать апплет по мере написания его методов.

Page 29: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

29

Другие операции

Открытие сторонних проектов в BlueJ BlueJ позволяет Вам открывать Java проекты, созданные вне его среды. Для этого

необходимо выполнить команду Open Non BlueJ… из меню Project. Итог: BlueJ может открывать другие проекты для этого необходимо использовать Project – Open

Non BlueJ… .

Добавление существующих классов в проект Часто Вы захотите видеть в вашем проекте файлы, используемые где-то в другом

месте. Например, преподаватель может дать студентам класс, для их целей. Вы можете легко включить существующий класс в ваш проект, используя меню – Edit – Add Class from File.… Это позволит вам выбрать исходный Java файл и включить его в ваш проект.

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

Альтернативный метод – скопировать исходный код класса в каталог без участия BlueJ. В следующий раз, когда Вы откроете проект, он будет присутствовать на диаграмме.

Итог: Класс может быть добавлен в проект, используя меню: File – Add Class.

Вызов main и других статических методов Откройте проект Hello. Единственный класс в этом проекте определяет main –

метод. Щелкнете на классе, и Вы увидите, что не только конструкторы, но и main – метод

появится в контекстном меню. Вы можете вызвать main непосредственно из этого меню – нет необходимости создавать экземпляр класса.

Page 30: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

30

Все статические методы могут быть вызваны таким образом. Стандартный main-метод предполагает передачу массива строк как аргумента. Вы можете передать массив строк, используя стандартную нотацию Java для массивов констант. Например:

{“one”, “two”, “three”} обязательно, включая, кавычки. Попробуйте! Примечание: В Java массив констант не может быть использован в качестве аргументов вызова

метода. Но BlueJ позволяет проделать это, для того, чтобы иметь возможность передать параметры в main-метод.

Итог: Статические методы могут быть вызваны непосредственно из контекстного меню класса.

Работа с библиотеками Часто, когда Вы пишите программу на Java, Вы сталкиваетесь с необходимостью

использовать стандартные библиотеки. Вы можете открыть web броузер, отображающий JDK API документацию, выбрав Help – Java Standard Classes из меню (только в режиме on-line).

Документация к JDK может быть установлена локально. Подробности объяснены в руководстве по BlueJ.

Итог: Документация к Java Standard Class API может быть показана, используя Help-Java Standard Libraries.

Page 31: The BlueJ TutorialThe BlueJ Tutorial Version 1.2 for BlueJ Version 1.1.x Michael Kölling School of Network Computing Monash University Translated into Russian by Vyacheslav ... Учебное

31

Итоги Основы Для создания экземпляра класса – выберете конструктор из контекстного меню.

1. Для выполнения метода выберете его из контекстного меню 2. Для редактирования исходного кода класса – дважды щелкните на пиктограмму класса. 3. Чтобы откомпилировать класс – щелкните кнопку Compile в редакторе. Чтобы

откомпилировать проект – щелкните кнопку Compile в окне проекта. 4. Чтобы получить справку об ошибке компиляции – щелкните мышью на знак вопроса

справа от ошибки. Двигаемся дальше …

1. Контроль объекта позволяет производить первичную отладку, проверяя его содержимое. 2. Объект может быть передан в качестве параметра простым щелчком мыши на его

пиктограмме. 3. Создание нового проекта 4. Для создания нового проекта выберете New из меню Project. 5. Для создания нового класса, щелкните на кнопку New Class и укажите его имя. 6. Чтобы провести стрелку – щелкните на нее в панели инструментов и перетащите ее в

диаграмму, либо внесите изменения в код вручную. 7. Чтобы удалить класс необходимо выбрать соответствующий пункт из контекстного

меню. Для удаления стрелки необходимо выбрать Remove Arrow из меню Edit и щелкнуть на стрелке.

Отладка

1. Для установки точки прерывания – щелкнете левой области редактора мышью. 2. Для пошагового прохождение кода используйте кнопки Step и Step Into в окне отладчика. 3. Контролировать переменные просто – они автоматически отображаются в окне

отладчика. 4. Halt и Terminate могут использоваться для временной или постоянной остановки

приложения. Создание независимого приложения

1. Для создания независимого приложения используйте: Project – Export… . Создание апплетов

2. Для запуска апплета – укажите Run Applet из контекстного меню. 3. Для создания апплета – щелкните кнопку New Class и укажите тип “Applet”.

Другие операции

1. BlueJ может открывать другие проекты для этого необходимо использовать Project – Open Non BlueJ… .

2. Класс может быть добавлен в проект, используя меню: File – Add Class. 3. Статические методы могут быть вызваны непосредственно из контекстного меню

класса. 4. Документация к Java Standard Class API может быть показана, используя Help-Java

Standard Libraries.