Eclipse Java
Eclipse Java
Учебное пособие
Москва 2008
Казарин С.А., Клишин А.П.
К 143 Среда разработки Java-приложений Eclipse: (ПО
для объектно-ориентированного программирования и
разработки приложений на языке Java): Учебное
пособие. Москва 2008. — 77 с.
Оглавление
Предисловие.......................................................................................4
Введение.............................................................................................6
Глава 1.Среда разработки приложений Eclipse...............................9
1.1.Системные требования...........................................................................................9
1.2.Введение в Eclipse....................................................................................................10
1.3.Установка Eclipse....................................................................................................12
1.4.Первый запуск Eclipse.............................................................................................14
1.5.Интерфейс пользователя......................................................................................18
1.6.Настройки среды....................................................................................................25
1.7.Создание проекта...................................................................................................27
1.8.Поддержка, советы, рекомендуемые ресурсы.....................................................33
Глава 2.Отладка и тестирование приложений..............................37
Глава 3.Лабораторный практикум..................................................44
Глоссарий..........................................................................................71
Список литературы..........................................................................77
3
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Предисловие
Подготовка пакета свободного программного обеспечения (ПСПО)
для школ является важным этапом на пути решения поставленных вре-
менем задач перед российским образованием. Обучение школьников
азам современного языка программирования и навыкам работы с систе-
мой разработки программных приложений СПО на ранних этапах поз-
волит приобщить учащихся к общемировым достижениям в области ин-
формационных технологий и заметно поднять их образовательный и
культурный уровень.
Концепция языка Java, как совокупности языка программирования
и виртуальной машины, ведет свое происхождение от проекта фирмы
Sun под названием Green (Oak), открытого в 1990 г. Первоначальной це-
лью проекта было создать среду разработки программного обеспечения
для бытовой электроники. Компания Sun поставила задачу заменить
множество разнообразных архитектур микроконтроллеров одной
единственной масштабируемой архитектурой (прототипом виртуальной
Java-машины). Затем проект был переориентирован на World Wide Web
и в августе 1995 г. состоялся первый официальный выпуск Java.
Своим стремительным распространением в широких кругах сооб-
щества Java обязана необычайно удачному сочетанию следующих фак-
торов: быстрого роста сети Internet и телекоммуникационных техноло-
гий, возрастанию потребностей образования в новых подходах к про-
граммированию, успехам в создании мобильных, портативных вычисли-
тельных устройств.
Отметим принципиальные нововведения, которые отличают Java
от других: независимость небольших мобильных программ в сочетании
с генерацией кода в процессе выполнения, переносимость, строгая ти-
пизация с поддержкой динамических типов и системы «сборки мусора».
Java предоставляет мощные объектно-ориентированные принципы
разработки приложений, сочетая простой и ясный синтаксис с надеж-
ной и удобной в работе системой программирования, что позволяет бы-
стро обучаться и создавать новые программы.
Как правило, современные средства создания Java-приложений
разработаны для различных платформ: Linux, Solaris, Windows и MacOS.
Важнейшее преимущество языка Java заключается в том, что приложе-
ние, написанное на основе данного языка, является независимым от
платформы и архитектуры процессора, который будет выполнять алго-
ритм данного приложения. Главным звеном в данном процессе являет-
ся виртуальная машина Java — это специальная программа, которая
имеющийся откомпилированный независимый байт-код преобразует в
4
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
5
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Введение
Программы, созданные на языке программирования Java, подраз-
деляются по своему назначению на две группы.
К первой группе относятся приложения Java, предназначенные
для локальной работы под управлением интерпретатора (виртуальной
машины) Java.
Вторую группу программ называют апплетами (aplets). Апплеты
представляют собой небольшие специальные программы, находящиеся
на удаленном компьютере в сети, с которым пользователи соединяются
с помощью браузера. Апплеты загружаются в браузер пользователя и
интерпретируются виртуальной машиной Java, встроенной практически
во все современные браузеры.
Приложения, относящиеся к первой группе, представляют собой
обычные локальные приложения. Поскольку они выполняются интер-
претатором и не содержат машинного кода то их производительность
заметно ниже, чем у обычных компилируемых программ (С++, Delphi).
Апплеты Java можно встраивать в документы HTML и помещать на
Web-сервер. Использование в интернет-страницах Java-апплетов прида-
ет динамический и интерактивный характер поведению последних. Ап-
плеты берут на себя сложную локальную обработку данных, получен-
ных от Web-сервера или от локального пользователя. Для более быстро-
го выполнения апплетов в браузере применяется особый способ компи-
ляции — Just-In-Time compilation (JIT, «на-лету)», что позволяет уве-
личить скорость выполнения апплета в несколько раз.
Для разработки программ на языке Java нам потребуется специ-
альное программное обеспечение. Самые новые версии системного про-
граммного обеспечения, необходимого для поддержки, можно загру-
зить с сайта компании Sun (http://java.sun.com/): JRE, JDK. Первое при-
ложение JRE — это программа для запуска и исполнения программ
(среда выполнения Java) Java Runtime Environment (JRE).
Для разработки программ также требуется комплект разработки
программного обеспечения — JDK (Java Development Kit). Он содержит
компилятор, стандартные библиотеки и т.п.
В настоящее время имеется три Java-платформы:
1) Java 2 Platform, Standard Edition (J2SE);
2) Java 2 Platform, Enterprise Edition (J2EE);
3) Java 2 Platform, Micro Edition (J2ME).
Каждая из этих платформ предназначена для разработки опреде-
ленного типа программ.
6
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
7
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
8
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
9
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Таблица 1
Системные требования
Минимальное значе- Рекомендуемое зна-
Требование
ние чение
Версия Jаva 1.4.0 1.6.0 и выше
Оперативная память 128 Мб 1 Гб и более
Свободное про- 300 Мб 1 Гб и более
странство на ЖД
Процессор 533 МГц 1,5 ГГц и более
10
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Проект
Проект (project) представляет собой набор файлов приложения и
сопутствующих дополнений. При работе с Java используются в основ-
ном файлы, имеющие следующие расширения: .java, .jsp, .xml.
Дополнение
Дополнением (plug-in) называют приложение, которое дополни-
тельно может быть установлено в Eclipse. Примером дополнения может
выступать JDT.
11
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Мастера
Мастер — это программное средство, которое помогает пользова-
телю в настройках и проведении сложной операции. В Eclipse имеется
множество различных мастеров, которые делают работу пользователя в
системе удобной и эффективной, беря часть рутинных операций на
себя. Примером мастера может выступить мастер создания нового
класса, который помогает пользователю в таких операциях, как созда-
ние нового файла в нужной директории, создание начального кода
класса, автоматическая расстановка модификаторов и т.д. (рис. 1).
12
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
13
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
14
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
15
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
16
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
18
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Команда Назначение
меню
Help Вызов справки, а также содержит вызов обновлений и
описание программы Eclipse
Панель инструментов
Данная панель содержит кнопки быстрого доступа к наиболее ча-
сто используемым функциям Eclipse. Кнопки по функциональному на-
значению сгруппированы в группы. Первая группа — создание (проек-
та, пакета, класса, интерфейса, перечисления и т.д), сохранение и пе-
чать относится к команде File. Вторая группа — отладка, запуск и
запуск с параметрами — относится к команде Run. Третья группа — но-
вый проект, новый пакет и новый Java-файл (класс, интерфейс, перечис-
ление) — дублирует первую кнопку для максимально быстрого доступа.
Последняя, четвертая, группа содержит кнопки, относящиеся к поиску
и навигации.
Представления
Окна браузера проекта и иерархии
Окно, в котором приводится древовидная структура проекта, пред-
назначено для быстрого просмотра или выбора элемента в иерархии
классов проекта. Здесь в виде дерева отображается структура проекта,
с помощью которой можно быстро переключаться между пакетами,
классами, методами и полями проекта приложения.
Окна отчетности
В этих окнах отображаются основные события при работе с прило-
жением — ошибки (вкладка Problems); комментарии (вкладка javadoc);
код декларации (вкладка declaration).
Перспективы
С помощью кнопки производится переключение между различ-
ными компоновками, такими, как Java, Debug, Java Browsing, C++ и др.
Быстрые окна
Кнопка «быстрые окна», или быстрый вызов представления, нахо-
дится в левом нижнем углу рабочего стола (№ 9, рис. 6).
Данная кнопка добавляет в окно браузера проекта различные па-
нели (представления), такие, как Ant, Problems, Search, Navigator и т.д.
Если вы случайно закрыли какую-либо панель, например Package
Explorer, с помощью данной кнопки можно ее восстановить.
При вызове новой панели с помощью данной кнопки, вызываемая
панель помещается поверх всех структурных элементов рабочего стола,
закрывая собой некоторую часть рабочего стола. Для более оптималь-
19
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
20
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
22
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
23
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
24
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
25
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
26
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
27
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
28
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
29
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
31
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
32
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
33
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Скрытые файлы
Надо иметь в виду, что при создании проекта создаются скрытые
файлы и каталоги, например .classpath, .project, metadata и др. При уда-
лении проекта не забудьте их удалить, если вы хотите оставить каталог
проекта.
Удаление Eclipse
Удаление Eclipse, как и установка, осуществляется при помощи
менеджера пакетов Synaptic. Для осуществления операции удаления
необходимы права суперпользователя.
В табл. 5 представлен набор сочетаний клавиш, которые наиболее
часто используются при работе с Eclipse.
Таблица 5
Комбинации клавиш
Сочетание клавиш Назначение
Ctrl+N Создание нового объекта, при этом бу-
дет запущен список выбора мастеров
Ctrl+M Свертывание, развертывание окон ре-
дакторов и представлений
Ctrl+Shift+Пробел Подсказка в параметрах метода
Ctrl+Shift+M Вставка
Ctrl+F Простой поиск
Ctrl+H Сложный поиск
Ctrl+K Повторить последний поиск
Ctrl+/ Комментировать одну строку кода
Ctrl+F6 Перебор редакторов. Следующий ре-
дактор
Ctrl+F8 Перебор перспектив. Следующая пер-
спектива
Ctrl+F7 Перебор представлений. Следующее
представление
Tab Увеличение отступа кода
Shift+Tab Уменьшение отступа кода
F12 Активировать редактор
F3 Открывает объявление выделенного
элемента
Alt+- Показать системное меню
34
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Рекомендуемые ресурсы
Eclipse
1. Платформа Eclipse — http://www.eclipse.org/
2. Сообщество Eclipse — http://www.eclipse.org/community/
3. Статьи, посвященные Eclipse — http://www.eclipse.org/articles
4. Официальный обзор Eclipse —
http://www.eclipse.org/whitepapers/eclipse-overview.pdf
5. Конференция EclipseCon — http://www.eclipsecon.org/
6. Common Public License Version 1.0 —
http://www.eclipse.org/legal/cpl-v10.html
7. Список рекомендуемой литературы по Eclipse —
http://www-128.ibm.com/developerworks/library/os-ecl-read/?
S_TACT=105AGX01&S_CMP=LP
8. Ресурсы для разработчика в Eclipse —
http://www.ibm.com/developerworks/ru/opensource/top-
projects/eclipse.html
Ant
Ant — http://ant.apache.org/
Apache
Web-сервер Apache — http://www.apache.org/
OpenOffice.org
Офисный пакет — http://www.openoffice.org/
Java
1. Документация по классам Java. [Электронный ресурс] —
http://java.sun.com/docs/
2. Учебные пособия по Java (Java Tutorial). [Электронный ре-
сурс] — http://java.sun.com/docs/books/tutorial/
3. Ответы на часто задаваемые вопросы (FAQ). Линден П.
[Электронный ресурс] — http://www.afu.com/javafaq.html
Конференции
1. Сетевая конференци программистов Java
Comp.lang.java.programmer
2. Сетевая конференци Comp.lang.java.*
35
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Контрольные вопросы
1. Укажите, для каких целей предназначена IDE Eclipse.
2. Укажите последовательность действий для вызова панели
Outline.
3. Перечислите основные представления, доступные в перспек-
тиве Java.
4. Существует ли возможность создать проект Eclipse на основе
уже готовых исходных текстов, созданных в других средах разра-
ботки? Что для этого необходимо сделать?
5. Для каких целей используется представление Problems?
36
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
37
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
38
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
39
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
40
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
41
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
42
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
43
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Задания к работе
1. Установите последовательно компоновки на вашем рабочем
столе: Java, Java Browsing, Debug. Укажите функции и назначение
этих компоновок.
2. Работа с представлениями. В компоновку Java добавьте но-
вые представления: Problems, Members и затем их закройте. В
компоновку Java Browsing добавьте новые представления: Debug,
Display, Memory и затем их закройте.
3. Создайте новый проект newProject1. Добавьте в него три пу-
стых класса: wnclass1, wnclass2, wnclass3.
4. Переименуйте классы, созданные в задании 3: fqrs1, fqrs2,
fqrs3.
44
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Лабораторная работа №2
Тема работы. Введение в язык программирования Java.
Цель работы. Первое знакомство с языком программирования
Java.
Содержание работы. В данной работе подробно рассматривают-
ся программы, на основе которых учащиеся познакомятся со структу-
рой простейших программ Java.
П р о г р а м м а 1 . Простейшая программа.
01 public class Hello {
02 public static void main(String[] args) {
03 System.out.print("Добро пожаловать в мир Java!");
04 }
05 }
Внимание: с целью облегчения комментирования текста про-
грамм практикума в листинги программ добавлена нумерация строк,
которую вы не найдете в редакторе кода Eclipse.
Данная программа выводит сообщение на консоль (или в команд-
ную строку). Приводится описание класса с именем Hello в строке (01),
в котором имеется только один метод main()(02). При запуске програм-
мы управление передается этому методу и сразу же происходит вывод
сообщения на консоль.
В самом начале не нужно пытаться понять, как устроен процесс
вывода, он достаточно сложный, нужно просто помнить, что вывод
производится конструкцией, называемой объектом стандартного вы-
вода System.out с использованием метода print. Метод println позво-
ляет после вывода строки осуществить переход курсора на новую стро-
ку.
П р о г р а м м а 2 . Вывод текста несколькими строками.
01 public class Hello2 {
02 // Выполнятся приложение Java начинает с метода main
03 public static void main(String[] args) {
04 System.out.println("Добро\n пожаловать\n в мир\n Java!");
05 } // окончание метода main
06 } // окончание класса Hello2
45
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Лабораторная работа №3
Тема работы. Алгоритмизация и использование управляющих
структур в Java.
Цель работы. Использование циклов в приложении Java.
Содержание работы. Рассмотрены программы, в которых ис-
пользуются операторы циклов For, While для многократного выполне-
ния определенных операторов.
П р о г р а м м а 1 . Вычисление суммы и произведения последова-
тельности из 10 случайных чисел.
01 public class ForCycle {
02 public static void main(String[] args) {
03 int tmp = 0;
04 long tmp2 = 1;
05 System.out.print("Сумма\t\tПроизведение \n");
06 for(int i=0;i<10;i++){
07 tmp += (int)Math.round(Math.random()*10);
08 tmp2 = tmp2*tmp;
09 System.out.print(tmp+"\t\t"+tmp2+"\n");
10 }
11 }
12 }
В строке 02 объявляем главный метод main(). В объявлении пере-
менной tmp типа int присваиваем ей начальное значение (tmp=0, ини-
циализация переменной tmp в строке 03). В переменной tmp будет хра-
ниться сумма 10 членов последовательности из случайных чисел. Далее
объявляем переменную tmp2 типа long, в которой будем хранить зна-
чения произведения членов последовательности (04). В цикле FOR
(06-10) находится сумма и произведение элементов последовательно-
сти. Генерация случайного члена последовательности осуществляется с
46
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
47
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Лабораторная работа №4
Тема работы. Алгоритмизация и использование управляющих
структур в Java.
Цель работы. Использование элементов организации ветвления
в Java.
Содержание работы. В данной работе рассматриваются про-
граммы, использующие операторы ветвления. Ветвление используется
для организации различных направлений вычислительного процесса.
П р о г р а м м а 1 . Вычисления числа Пи.
01 public class Pi {
02 static double pi;
04 static void leibnic(){
05 for(double i=1;i<100000000;i+=1){
06 if (i%2==0){
07 pi-=1/(2*i-1);
09 }else{
10 pi+=1/(2*i-1);
12 }
13 }
14 pi*=4;
System.out.print("\nЧисло Пи, подсчитанное по методу
15 Лейбница равно: "+pi);
16 }
17 static void vallis(){
18 double pi1=1, pi2=1;
19 for(double i=2;i<100000000;i+=2){
48
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
20 pi1*=i/(i+1);
21 pi2*=i/(i-1);
22 }
23 pi=pi1*pi2*2;
System.out.print("\nЧисло Пи, подсчитанное по методу Валлиса
24 равно: "+pi);
25 }
26 public static void main(String[] args) {
27 leibnic();
28 vallis();
29 }
30 }
В данной программе описаны два метода нахождения числа Пи:
метод Лейбница (ряд Лейбница) и метод Валлиса (формула Валлиса).
В данной программе в строках 02 и 03 описываются static пере-
менная класса pi типа double. Расчеты методом Лейбница вызываются
в строке 27 благодаря использованию имени метода leibnic(). Ана-
логично в строке 28 вызываем метод Валлиса vallis().
В методе Лейбница для вычисления числа Пи используется ряд:
1 1 1 1 1 π
− + − + ... =
1 3 5 7 9 4
Для вычисления данного ряда мы использовали цикл с условным
оператором, где проверяется условие на четность i%2==0, если оно вер-
но, то дробь имеет положительный знак pi+=1/(2*i-1), если нет, то
ставим знак минус. В конце, для получения приближенного значения
числа Пи, переменная pi умножается на 4 и выводится на консоль.
Расчет по формуле Валлиса
2 2 4 4 6 6 8 8 π
⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ... =
1 3 3 5 5 7 7 9 2
происходит немного по-другому. В методе объявляются две пере-
менные pi1 и pi2 типа double в строке 18, первая хранит произведение
четных дробей, вторая — нечетных, затем их удвоенное произведение
присваивается переменной pi и выводится на консоль.
П р о г р а м м а 2 . Нахождение решения уравнения A3 B3C3= ABC
01 public class Sol {
02 public static void work(){
03 long x=0;
04 for(int i=1;i<10;i++){
05 for (int j=0;j<10;j++){
06 for (int k=0;k<10;k++){
07 x=i*100+j*10+k;
08 if (x==(Math.pow(i,3)+Math.pow(j, 3) + Math.pow(k,3))){
09
System.out.println(i+"^3+"+j+"^3+"+k+"^3+"+" = "+x);
49
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
10 }
11 }
12 }
13 }
14 }
15 public static void main(String[] args) {
16 work();
17 }
18 }
Данная программа находит такие цифры A, B и C, сумма кубов ко-
торых равна числу, составленному из этих цифр.
В программе имеются три цикла, вложенные друг в друга, каждый
цикл выполняется десять раз, таким образом тело цикла 07-09 выполня-
ется одну тысячу раз (10x10x10). Переменная x, составленная из кубов
счетчиков циклов, где первый счетчик играет роль сотен числа, второй
десятков, третий единиц. Если полученное x равно сумме кубов счетчи-
ков, то на консоль выводится информация о полученных цифрах и числе
x. Нахождение кубов чисел осуществляется с помощью метода pow()
класса Math, в качестве первого параметра выступает само число, а вто-
рым параметром служит показатель степени Math.pow(i,3). Можно ис-
пользовать более знакомую и привычную запись i*i*i, j*j*j и k*k*k.
Задания к работе
1. Создайте приложение, которое покажет, что для выражения
a bn=cn (теорема Ферма) нет натуральных решений от 1 до 100
n
Лабораторная работа №5
Тема работы. Алгоритмизация и использование управляющих
структур в Java.
Цель работы. Организация ветвления в Java.
Содержание работы. Рассматривается программа, в которой ис-
пользуется оператор множественного выбора, выполняющий задачу
множественного ветвления.
П р о г р а м м а 1 . Перевод чисел из десятичной системы счисле-
ния в двоичную и шестнадцатеричную.
01 public class Trans {
02 public static String fromdectobin(int x){
03 String res="";
50
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
04 short q = 0;
05 while(x>0){
06 q=(short)(x%2);
07 x/=2;
08 res=q+res;
09 }
10 return res;
11 }
12 public static String fromdectohex(float x){
13 String res="";
14 short q = 0;
15 int c = 2;
16 while(c>0){
17 q=(short)(16*(x/16-Math.floor(x/16)));
18 c=(int) Math.floor(x/16);
19 x=c;
20 if(q<10){
21 res=q+res;
22 }else{
23 switch(q){
24 case 10:
25 res="A"+res;
26 break;
27 case 11:
28 res="B"+res;
29 break;
30 case 12:
31 res="C"+res;
32 break;
33 case 13:
34 res="D"+res;
35 break;
36 case 14:
37 res="E"+res;
38 break;
39 case 15:
40 res="F"+res;
41 break;
42 }
43 }
44 }
45 return res;
46 }
47 public static void main(String[] args) {
48 System.out.println(fromdectobin(90367));
49 System.out.println(fromdectohex(90367));
50 }
51 }
51
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
52
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Лабораторная работа №6
Тема работы. Массивы и строки.
Цель работы. Научиться использовать массивы и строки в Java.
Содержание работы. Работа с массивами: поиск минимального
элемента и сортировка массива, а также простейшие приемы работы со
строками.
П р о г р а м м а 1 . Работа с массивами
01 public class Arrays {
02 public static short minX(){
03 short x=0;
04 short[] array = new short[10];
05 System.out.print("Исходный массив: ");
06 for (int i=0;i<10;i++){
07 array[i]=(short)Math.round(50*Math.random());
08 System.out.print(array[i]+", ");
09 }
10 x=array[0];
11 for(int i=1;i<10;i++){
12 if(x>array[i]){
13 x=array[i];
14 }
15 }
16 return x;
17 }
18 public static void sort(){
19 short temp;
20 short[] array = new short[10];
21 System.out.print("\nИсходный массив: ");
22 for (int i=0;i<10;i++){
23 array[i]=(short)Math.round(50*Math.random());
24 System.out.print(array[i]+", ");
25 }
26 System.out.print("\nМассив отсортированный: ");
27 for(int i=0;i<9;i++){
28 for(int j=9;j>i;j--){
29 if(array[j-1]>array[j]){
30 temp=array[j];
31 array[j]=array[j-1];
32 array[j-1]=temp;
33 }
34 }
35 System.out.print(array[i]+", ");
36 }
37 }
38 public static void main(String[] args) {
39 System.out.print("\nМинимальный элемент: "+minX());
40 sort();
41 }
53
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
42 }
В данной программе используются два метода — minX() и sort().
В каждом из представленных методов описывается по одному массиву,
выделяя память на десять элементов для каждого массива (04, 20). За-
тем происходит заполнение массивов случайными числами с помощью
метода Math.random() (06-09, 22-25). Явным преобразованием (short)
приводим полученные значения типа double к значениям типа short
(7,23).
После того, как массивы готовы, можно производить над ними
различные действия. Метод minX() ищет минимальный элемент в полу-
ченном массиве (11-15).
Второй метод производит сортировку полученного массива (27-34)
методом пузырька. Затем выводит значения его элементов (35).
В методе main() вызываем minX() и sort(). Поскольку метод
minX() возвращает значение строкового типа, его можно использовать в
качестве аргумента конструкции System.out.print().
П р о г р а м м а 2 . Работа со строками
01 public class Strings {
02 public static String compare(String s1, String s2){
03 String s3="";
04 if (s1.equals(s2)){
05 s3="Строки \""+s1+"\" и \""+s2+"\" равны";
06 } else {
07 s3="Строки \""+s1+"\" и \""+s2+"\" не равны";
08 }
09 return s3;
10 }
11 public static String add(String s1, String s2){
System.out.print("\nРезультат сложения строк \""+s1+"\" и
12 "+"\""+s2+"\": ");
13 s1+=" "+s2;
14 return s1;
15 }
16 public static void main(String[] args) {
17 System.out.println(compare("АБВГ","АБВ"));
18 System.out.print(compare("АБВ","АБВ"));
19 System.out.print(add("Hello","World"));
20 }
21 }
В приложении имеется два метода, которые сравнивают и склеи-
вают две строки. Первый метод compare() производит сравнение двух
строк и выводит результат на консоль. Сравнение производится с помо-
щью функции equals() в строке (04). Если строки совпадают, данная
функция возвращает значение true. Если строки равны (имеют одина-
54
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Задания к работе
1. Дан массив из целых чисел A(n), где n=1,25. Необходимо по-
менять местами его максимальный и минимальный элемент.
2. Дан массив из целых чисел B(n), где n=1,25. Необходимо
упорядочить массив по возрастанию.
3. Дан массив из целых чисел С(n), где n=1,20. Необходимо
найти среднее значение и вывести его на консоль.
4. Дан массив из целых чисел D(n), где n=1,30. Посчитайте
сумму четных и нечетных элементов массива.
5. Напишите программу, выводящую на консоль таблицу 3х5
случайных элементов (a(i,j)< 10).
6. Измените программу 1 так, чтобы она выводила на консоль
еще и максимальный элемент (с помощью описания нового мето-
да, например maxX()).
7. Даны 5 строк s1, s2, s3, s4 и s5, на основе условия: если
строка s4 равна строке s5, нужно сложить строки s1 и s2, иначе
нужно сложить строки s1 и s3.
Лабораторная работа №7
Тема работы. Введение в объектно-ориентированное програм-
мирование.
Цель работы. Изучение основ объектно-ориентированного про-
граммирования на языке Java.
Содержание работы. В работе рассматриваются приложения,
демонстрирующие основные принципы объектно-ориентированного
программирования.
П р о г р а м м а 1 . Инкапсуляция полей и наследование.
01 public class Encapsulate {
02 public int field1 = 100;
03 protected int field2 = 150;
04 int field3 = 200;
05 private int field4 = 250;
06 public int getField4(){
07 return this.field4;
55
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
08 }
09 public static void main(String[] args) {
10 new Class2().method1();
11 }
12 }
13 class Class2 extends Encapsulate {
14 public void method1(){
System.out.println("Значение открытого public поля
15 - field1: "+this.field1);
System.out.println("Значение защищенного protected
16 поля - field2: "+this.field2);
System.out.println("Значение поля без модификатора
17 - field3: "+this.field3);
System.out.println("Значение инкапсулированного закрытого
18 private поля - field4: "+getField4());
19 }
20 }
В приведенном примере демонстрируются два основных принципа
объектно-ориентированного программирования: инкапсуляция и насле-
дование. Создается класс Encapsulate (01-12), в котором объявляются и
инициализируются поля filed1, filed2, filed3 и filed4. Каждое поле
имеет различный уровень доступа, поскольку при описании использова-
ны модификаторы доступа к элементам класса: public, protected,
private. Затем описывается новый класс Class2, который наследуется
от класса Encapsulate с помощью зарезервированного слова extends. В
данном классе описывается новый метод, расширяющий суперкласс, в
котором выводятся значения полей, описанных в суперклассе. Вы види-
те, что в классе Class2 нет описания этих полей, они наследуются из
суперкласса Encapsulate, так же как и метод getField4(). Поскольку
метод main() находится в классе Encapsulate, то для проверки работы
метода method1() нужно создать экземпляр класса Class2 и вызвать
этот метод, что и происходит в строке 10.
Интересно отметить особенность инкапсуляции, когда поле
filed4, объявленное с ключевым словом private, не доступно в классах
потомках, хотя и наследуется. Для проверки этого факта измените стро-
ку 18, заменив вызов getField4() на прямой запрос значения поля
this.filed4. В данном случае Eclipse сообщит об ошибке, а именно, что
поле Encapsulate.field4 не доступно. Принцип инкапсуляции приме-
няется для сокрытия переменных или методов класса от внешних кли-
ентов (классов, методов).
П р о г р а м м а 2 . Полиморфизм.
01 public class Polymorph {
02 void method1(){
03 System.out.println("Это был вызван метод суперкласса
56
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Polymorph");
04 }
05 public static void main(String[] args) {
06 new NewClass1().method1();
07 new NewClass2().method1();
08 }
09 }
10 class NewClass1 extends Polymorph {
11 void method1(){
12 System.out.println("Это был вызван метод класса потомка
13 NewClass1");
14 }
15 }
16 class NewClass2 extends Polymorph {
17 void method1(){
System.out.println("Это был вызван метод класса потомка
18 NewClass2");
19 }
20 }
В приложении демонстрируется простейший пример полиморфиз-
ма. Имеется три класса Polymorph, NewClass1, NewClass2, причем
Polymorph является суперклассом по отношению к NewClass1,
NewClass2. В классе Polymorph описан метод method1() (02), который
выводит сообщение в консоль. Классы NewClass1, NewClass2 наследу-
ют этот метод и переопределяют его (override), осуществляя тем самым
перегрузку метода. Далее в методе main() суперкласса создается два
объекта экземпляра классов.
В результате оба класса наследуют один и тот же метод, но выпол-
няется он у каждого из них по-разному или в разной форме. Таким об-
разом, вызывая один и тот же метод, с помощью разных объектов мож-
но получить разные по форме результаты, тогда более понятным стано-
вится смысл термина «полиморфизм».
Задания к работе
1. Создайте приложение, в котором имеются три класса:
fclass1, fclass2, fclass3. В классе fclass1 содержится метод
main(). Класс fclass3 наследуется от fclass1, а fclass2 — от
fclass3.
2. Создайте приложение, в котором имеются два класса:
fclass1, fclass2. В классе fclass1 содержится метод main().
Создайте методы в fclass2 для доступа к закрытым переменным
класса fclass1.
57
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Лабораторная работа №8
Тема работы. Работа с графическим интерфейсом пользователя.
Обработка событий.
Цель работы. Знакомство с элементами разработки графическо-
го интерфейса пользователя. Создание приложения из нескольких
файлов.
Содержание работы. В данной работе рассматриваются програм-
мы, демонстрирующие основы работы с графическим интерфейсом
пользователя и обработкой событий компонентов ГИП.
В данной работе для создания программы графопостроителя нам
понадобится четыре класса, которые будут находиться в разных файлах.
Для того, чтобы в дальнейшем избежать путаницы, необходимо данные
файлы поместить в отдельную папку (или, в интерпретации платформы
Eclipse, в отдельный подпакет). Создайте новую папку, щелкнув правой
кнопкой мыши на имени проекта в представлении Package explorer, и в
раскрывшемся меню (рис. 15), выбрав пункт «Folder». Назовите ее
«MyGraph». Затем в данной папке аналогично создайте четыре новых
класса:
● «Graphic» — главный класс, в котором будет метод main().
● «Sinus» — класс графика синуса.
● «Cosinus» — класс графика косинуса.
● «X2» — класс графика параболы.
Помните, если классы описаны с любым из модификаторов види-
мости public, protected или private, то имена классов должны совпа-
дать с именами файлов, в которых хранятся данные классы.
После того, как классы будут созданы, введите предложенный
ниже код программы.
П р о г р а м м а 1 . Построение графиков элементарных функций.
Класс Graphic
01 package MyGraph;
02 import java.awt.*;
03 import java.awt.event.*;
04 import javax.swing.*;
05 public class Graphic extends JFrame{
06 Graphic(String s){
07 super(s);
08 setLayout(null);
09 setSize(120,200);
10 setVisible(true);
11 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
12 this.setResizable(false);
13 Button sin = new Button("Sin");
14 sin.setBounds(5, 20, 100, 25);
58
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
15 add(sin);
16 Button cos = new Button("Cos");
17 cos.setBounds(5, 70, 100, 25);
18 add(cos);
19 Button x2 = new Button("Парабола");
20 x2.setBounds(5, 120, 100, 25);
21 add(x2);
22 sin.addActionListener(new ActionListener(){
23 public void actionPerformed(ActionEvent event){
24 new Sinus("Синус");
25 }
26 });
27 cos.addActionListener(new ActionListener(){
28 public void actionPerformed(ActionEvent event){
29 new Cosinus("Косинус");
30 }
31 });
32 x2.addActionListener(new ActionListener(){
33 public void actionPerformed(ActionEvent event){
34 new X2("Парабола");
35 }
36 });
37 }
38 public static void main(String[] args) {
39 new Graphic("Графопостроитель");
40 }
41 }
Класс Sinus
01 package MyGraph;
02 import java.awt.Color;
03 import java.awt.Graphics;
04 import javax.swing.JFrame;
05 public class Sinus extends JFrame{
06 Sinus(String s){
07 super(s);
08 setLayout(null);
09 setSize(600,300);
10 setVisible(true);
11 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
12 this.setResizable(false);
13 this.setLocation(100, 100);
14 }
15 public void paint(Graphics gr){
16 int y; int j=0; int k=0;
17 gr.setColor(Color.WHITE);
18 gr.fillRect(0, 0, 600, 300);
19 gr.setColor(Color.lightGray);
20 while(j<600){
59
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
21 gr.drawLine(j, 0, j, 300);
22 j+=30;
23 }
24 while(k<300){
25 gr.drawLine(0, k, 600, k);
26 k+=30;
27 }
28 gr.setColor(Color.BLACK);
29 gr.drawLine(300, 0, 300, 300);
30 gr.drawLine(0, 150, 600, 150);
31 gr.drawLine(120, 140, 120, 160);
32 gr.drawLine(480, 140, 480, 160);
33 gr.drawString("0", 305, 165);
34 gr.drawString("-"+"\u03c0", 125, 140);
35 gr.drawString("\u03c0", 485, 140);
36 gr.setColor(Color.RED);
37 for(double i=0;i<1000;i++){
38 y=(int)(80*Math.sin(Math.PI*i/180));
39 gr.drawLine((int)i-240, y+150, (int)i-240, y+150);
40 }
41 gr.dispose();
42 }
43 }
Класс Cosinus
01 package MyGraph;
02 import java.awt.Color;
03 import java.awt.Graphics;
04 import javax.swing.JFrame;
05 public class Cosinus extends JFrame{
06 Cosinus(String s){
07 super(s);
08 setLayout(null);
09 setSize(600,300);
10 setVisible(true);
11 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
12 this.setResizable(false);
13 this.setLocation(200, 200);
14 }
15 public void paint(Graphics gr){
16 int y; int j=0; int k=0;
17 gr.setColor(Color.WHITE);
18 gr.fillRect(0, 0, 600, 300);
19 gr.setColor(Color.lightGray);
20 while(j<600){
21 gr.drawLine(j, 0, j, 300);
22 j+=30;
23 }
24 while(k<300){
60
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Класс X2
01 package MyGraph;
02 import java.awt.Color;
03 import java.awt.Graphics;
04 import javax.swing.JFrame;
05 public class X2 extends JFrame{
06 X2(String s){
07 super(s);
08 setLayout(null);
09 setSize(600,300);
10 setVisible(true);
11 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
12 this.setResizable(false);
13 this.setLocation(300, 300);
14 }
15 public void paint(Graphics gr){
16 int y; int j=0; int k=0;
17 gr.setColor(Color.WHITE);
18 gr.fillRect(0, 0, 600, 300);
19 gr.setColor(Color.lightGray);
20 while(j<600){
21 gr.drawLine(j, 0, j, 300);
22 j+=50;
23 }
24 while(k<300){
25 gr.drawLine(0, k, 600, k);
26 k+=50;
27 }
28 gr.setColor(Color.BLACK);
61
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
62
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
05 ExtEventHandler(String s){
06 super(s);
07 setLayout(null);
08 setSize(100,200);
09 setVisible(true);
10 setResizable(false);
11 setDefaultCloseOperation(EXIT_ON_CLOSE);
12 Button b1 = new Button("Первая кнопка");
13 b1.setBounds(2, 5, 96, 22);
14 add(b1);
15 Button b2 = new Button("Вторая кнопка");
16 b2.setBounds(2, 100, 96, 22);
17 add(b2);
18 b1.addActionListener(new Handler(b1, b2));
19 b2.addActionListener(new Handler(b1, b2));
20 }
21 public static void main(String[] args) {
22 new ExtEventHandler("");
23 }
24 }
25 class Handler implements ActionListener{
26 private Button ba;
27 private Button bb;
28 String temp;
29 Handler(Button b1, Button b2){
30 this.ba=b1;
31 this.bb=b2;
32 }
33 public void actionPerformed(ActionEvent e) {
34 temp = ba.getLabel();
35 ba.setLabel(bb.getLabel());
36 bb.setLabel(temp);
37 }
38 }
В классе ExtEventHandler (04-24) приводится основное описание
интерфейса пользователя: форма размером 100x200 и две кнопки с над-
писями: первая кнопка (12-14) и вторая кнопка (15-17).
В приложении для обработки событий, которые возникают при на-
жатии на кнопки, описан отдельный класс Handler (25-38), который ис-
пользует интерфейс ActionListener.
Поскольку в описании ActionListener нельзя напрямую использо-
вать компоненты, описанные в конструкторе класса ExtEventHandler,
то нужно создать ссылки на объекты, которые будут использованы. Со-
здание ссылочных объектов производится в строках 26, 27, а сами ссыл-
ки создаются в конструкторе (30, 31). Когда ссылки готовы, в процессе
добавления слушателей (18, 19), в параметрах указываем имена реаль-
ных компонентов.
63
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Лабораторная работа №9
Тема работы. Апплеты.
Цель работы. Знакомство с элементами разработки Java-аппле-
тов.
Содержание работы. Разработка апплетов.
П р о г р а м м а 1 . Простейший апплет.
01 import java.awt.*;
02 import java.applet.*;
03 public class My_Applet extends Applet{
04 public void paint(Graphics g){
05 g.drawString("Hello, World!", 5, 30);
06 }
07 }
Приложение представляет собой простейший Java-апплет, в кото-
ром выводится строка с использованием ранее рассмотренного метода
(05) drawString().
Для запуска и просмотра апплетов в Eclipse используется специ-
альное программное средство AppletViewer.
П р о г р а м м а 2 . Использование элементов графического интер-
фейса пользователя в апплетах.
01 import java.awt.*;
02 import java.awt.event.ActionEvent;
03 import java.awt.event.ActionListener;
04 import java.applet.*;
05 public class My_Applet extends Applet{
06 public void init(){
07 setLayout(null);
08 final TextField tf1 = new TextField(15);
09 tf1.setBounds(1, 1, 100, 20);
10 add(tf1);
11 final TextField tf2 = new TextField(15);
12 tf2.setBounds(1, 25, 100, 20);
13 add(tf2);
64
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
65
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
66
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Button("-");
54
bminus.setBounds(152,80,80,40);
55 add(bminus);
56 Button bmul = new Button("*");
57 bmul.setBounds(152,130,80,40);
58 add(bmul);
59 Button bdiv = new Button("/");
60 bdiv.setBounds(152,180,80,40);
61 add(bdiv);
b1.addActionListener(new ActionListener() В строках
62 62-140 для
{
каждой из
public void actionPerformed(ActionEvent
63 кнопок
event) { производится
64 display.setText(display.getText()+"1"); обработка
65 } событий на
66 }); нажатие.
Для цифровых
b2.addActionListener(new ActionListener()
67 кнопок —
{ добавление к
public void actionPerformed(ActionEvent тексту поля
68
event) { ввода
69 display.setText(display.getText()+"2"); соответствующей
цифры, для
70 } арифметических
71 }); операций —
b3.addActionListener(new ActionListener() установка
72
{ «флага» op
public void actionPerformed(ActionEvent соответствующей
73 операции,
event) { сохранение в
74 display.setText(display.getText()+"3"); переменной temp
75 } введенного в
76 }); поле display
b4.addActionListener(new ActionListener() числа, путем
77 преобразования
{ строки в число
public void actionPerformed(ActionEvent и очистка
78
event) { дисплея.
79 display.setText(display.getText()+"4");
80 }
81 });
b5.addActionListener(new ActionListener()
82
{
public void actionPerformed(ActionEvent
83
event) {
84 display.setText(display.getText()+"5");
85 }
86 });
b6.addActionListener(new ActionListener()
87
{
public void actionPerformed(ActionEvent
88
event) {
89 display.setText(display.getText()+"6");
67
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
90 }
91 });
b7.addActionListener(new ActionListener()
92
{
public void actionPerformed(ActionEvent
93
event) {
94 display.setText(display.getText()+"7");
95 }
96 });
b8.addActionListener(new ActionListener()
97
{
public void actionPerformed(ActionEvent
98
event) {
99 display.setText(display.getText()+"8");
100 }
101 });
b9.addActionListener(new ActionListener()
102
{
public void actionPerformed(ActionEvent
103
event) {
104 display.setText(display.getText()+"9");
105 }
106 });
b0.addActionListener(new ActionListener()
107
{
public void actionPerformed(ActionEvent
108
event) {
109 display.setText(display.getText()+"0");
110 }
112 });
bplus.addActionListener(new
113
ActionListener() {
public void actionPerformed(ActionEvent
114
event) {
115 op = '+';
116 temp = Double.valueOf(display.getText());
117 display.setText("");
118 }
119 });
bminus.addActionListener(new
120
ActionListener() {
public void actionPerformed(ActionEvent
121
event) {
122 op = '-';
123 temp = Double.valueOf(display.getText());
124 display.setText("");
125 }
126 });
bdiv.addActionListener(new
127
ActionListener() {
68
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Задания к работе
1. Измените данную программу так, чтобы числа можно было
бы вводить в поле с клавиатуры, при этом перехватывая возмож-
ные исключения типа NumberFormatException.
69
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
70
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Глоссарий
А
AWT — Abstract Windowing Toolkit — пакет (библиотека) базо-
вых компонентов графического интерфейса пользователя.
Абстракция — определение, характеризующее уровень обобщен-
ности описания того или иного объекта или процесса.
Абстрактный класс (abstract class) — класс, который содержит
один или более абстрактных методов, вследствие чего нельзя создавать
экземпляры данного класса. Абстрактные классы определены таким об-
разом, чтобы другие классы могли расширять и конкретизировать их,
реализуя абстрактные методы.
Абстрактный метод (abstract method) — метод, не имеющий
реализации.
Аргумент — элемент некоторых данных, указываемый при вызове
метода.
Array (массив) — см. массив.
Б
Байт-код (bytecode) — машинно-независимый код, генерируе-
мый Java-компилятором и исполняемый Java-интерпретатором.
Байт (byte) — последовательность из восьми битов. В языке про-
граммирования Java определен соответствующий тип byte.
В
Виртуальная машина JAVA — программный "механизм выполне-
ния", который безопасно выполняет байт-коды файлов классов Java на
микропроцессоре (компьютера или другого электронного устройства).
Возврат (return) — оператор возвращения одного из типов зна-
чений методом класса.
Выражение — конструкция, состоящая из данных и операторов,
возвращающее некоторое значение в качестве результата.
Г
GUI — см. ГИП.
ГИП — графический интерфейс пользователя — средство органи-
зации программного графического интерфейса средствами библиотек
AWT и SWING.
71
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Д
Динамическая переменная — переменная, наследуемая в по-
томках, становящаяся отдельным членом каждого экземпляра, не зави-
сящая от тех же переменных других экземпляров.
Декларация — процесс объявления новых членов класса.
Декремент — оператор, увеличивающий значение операнда на
единицу.
Е
Event — см. событие.
И
Инкапсуляция — локализация части данных в пределах класса.
Поскольку объекты инкапсулируют данные и реализацию, пользователь
может рассматривать объект как черный ящик, предоставляющий услу-
ги. Переменные и методы экземпляров класса могут добавляться, уда-
ляться или изменяться, но до тех пор, пока услуги, предоставляемые
объектом, не изменяются, нет необходимости переписывать код, ис-
пользующий данный объект. См. также переменная экземпляра класса
и метод экземпляра класса.
Инкремент — оператор, уменьшающий значение операнда на
единицу.
Inheritable — см. наследование.
Иерархия — классификация соотношений, в которой каждый эле-
мент, кроме верхнего (называемого корнем), является специализиро-
ванным видом элемента, расположенного над ним. Каждый элемент мо-
жет иметь один или несколько элементов, находящихся ниже него в
иерархии. В иерархии классов Java, образуемой при наследовании, кор-
нем является класс Object.
Имя — символьная или символьно-цифровая идентификация како-
го-либо члена класса или самого класса, используемая в качестве вызо-
ва.
Идентификатор — имя объекта для компилятора, используемое
для связывания в процессе компиляции программы.
Интерфейс — понятие, используемое для определения набора ме-
тодов и постоянных значений (класса специального вида). Интерфейс в
дальнейшем может реализовываться классами, которые определяют
этот интерфейс с ключевым словом implements.
72
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
К
Класс — тип в языке программирования Java, определяющий реа-
лизацию особого вида объекта. Описание класса определяет экземпляр
класса, его переменные и методы.
Компонент — элемент библиотеки графического интерфейса
пользователя AWT или SWING.
Код — исходный текст программы или класса.
Комментарий — часть кода, предваряемая специальным симво-
лом (в JAVA это символ //), которую компилятор при интерпретации иг-
норирует.
Константа — член класса, который на протяжении всей програм-
мы не может быть изменен, в том числе и в потомках и экземплярах
класса. Задается модификатором final.
Конструктор — особый метод, имеющийся в каждом классе, осу-
ществляющий процесс создания экземпляров данного класса. В случае
отсутствия явного описания, используется конструктор суперкласса.
Контейнер — сущность, обеспечивающая управление, безопас-
ность, разработку и сервисы выполнения компонент.
Л
Логический оператор — оператор, выполняющий действие с
операндами логического типа.
Логическая переменная/константа — член класса, имеющий
логический тип.
Логическое выражение — совокупность операторов и операн-
дов, возвращающая в результате логическое значение.
73
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
М
Массив (array) — совокупность элементов данных одного типа, в
которой позиция каждого элемента однозначно определена целым чис-
лом (индексом массива).
Модульность — один из принципов объектно-ориентированного
программирования, предполагающий, что каждый класс должен состав-
лять отдельный модуль, а члены класса, обращение к которым не пла-
нируется в дальнейшем, должны быть инкапсулированы.
Метод — функция, определенная в классе. Пока не оговорено
обратное, метод не является статическим. Различают методы экземпля-
ров и методы классов. Методы классов — локальные методы, как и
переменные, задаются модификатором static.
Модификатор — элемент языка объектно-ориентированного про-
граммирования, задающий параметры декларируемых членов.
Н
Наследование — концепция классов, автоматически включаю-
щих все переменные и методы, определенные в супертипе.
Name — см. имя.
О
Объект — основной компоновочный блок объектно-ориентирован-
ных программ. Каждый объект программного модуля состоит из данных
(переменные экземпляра) и функциональных возможностей (методы эк-
земпляра).
Объектно-ориентированное программирование — метод
проектирования программного обеспечения, позволяющий моделиро-
вать абстрактные или реальные объекты при помощи классов и объек-
тов.
Окно — элемент графического интерфейса пользователя, являю-
щийся контейнером, имеющий возможность помещать в себя другие
компоненты.
Отрицание — логический процесс изменения состояния логиче-
ского выражения, переменной или константы на обратное.
74
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
П
Переменная — элемент данных, имеющий идентифицирующее
его имя.
Подкласс — класс, наследованный от некоторого суперкласса.
Поле — элемент класса. Пока не определено обратное, поле не яв-
ляется статическим.
Полиморфизм — один из базовых принципов ООП, опирающийся
на наследование и предполагающий наличие нескольких объектов, на-
следованных от одного и того же класса, но имеющих разное содержа-
ние.
Р
Рабочий стол — часть графического интерфейса пользователя
оболочки программирования, отображающая совокупность элементов
управления.
С
Символ — элемент алфавита, а также элемент данных текстового
типа.
Событие — элемент класса Event.
Ссылка — объект, являющийся сопоставлением некоторому иден-
тификатору некоторой области памяти, содержащей данные.
Строка — элемент данных, представляющий собой набор симво-
лов.
Суперкласс — класс, являющийся родителем одного или несколь-
ких подклассов. Класс Object является суперклассом для любого клас-
са.
Т
Тип — параметр данных, характеризующий их принадлежность к
определенному множеству.
75
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
У
Условие — некоторый блок программы, содержащий выражение,
переменную или константу, имеющий логический тип и являющийся
основой выполнения какого-либо блока задач. Используется, в основ-
ном, в циклах и операторе ветвления.
Управляющие конструкции — разновидность операторов языка
программирования, функции которых заключаются в управлении ходом
программы.
Ф
Фокус — определение, характеризующее текущее состояние
компонента. Компоненты, имеющие фокус, могут получать команды от
пользователя с клавиатуры.
Ч
Член класса — метод, константа или переменная, описанная в
данном классе.
Э
Экземпляр — объект, созданный на основе некоторого класса.
76
С.А. Казарин, А.П. Клишин, Среда разработки Java-приложений Eclipse
Список литературы
Использованная:
1. Барнет Э. Eclipse IDE Карманный справочник: Пер. с англ. —
М.:КУДИЦ-ОБРАЗ, 2006. — 160 с.
2. Хабибуллин И. Ш. Самоучитель Java 2. — СПб.: БХВ-Петербург,
2007. — 720 с.
3. Шилдт Г. Полный справочник по Java. — М.: Вильямс, 2007. —
1040 с.
4. Ноутон П., Шилдт Г. Java 2. — CПб:, BНV-Санкт-Петербург,
2008. — 1072 с.
Электронные издания
5. Монахов В.В. Материалы курсов, разработанных в рамках про-
граммы Sun Microsystems Teaching Grants в 2006 году — «Язык про-
граммирования Java». СПбГУ, 2006.
6. Материалы интернет-сайта http://ru.sun.com
Рекомендуемая:
7. Фишер Т. Java. Карманный справочник. — М.: Вильямс, 2008. —
224 с.
8. Хемраджани А. Гибкая разработка приложений на Java с помо-
щью Spring, Hibernate и Eclipse. — М.: Вильямс, 2008. — 352 с.
9. Хабибуллин И. Ш. Самоучитель Java 2. — СПб.: БХВ-Петербург,
2007. — 720 с.
10. Шилдт Г. Swing. Руководство для начинающих. — М.: Ви-
льямс, 2007. — 704 с.
11. Барнет Э. Eclipse IDE Карманный справочник: Пер. с англ. —
М.:КУДИЦ-ОБРАЗ, 2006. — 160 с.
77