Учебное пособие
Москва 2008
Оглавление
Предисловие.......................................................................................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, как совокупности языка программирован
программирования ия
и виртуальной машины, ведет свое происхождение от проекта фирмы
Sun под названием Green (Oak), открытого в 1990 г. Первоначальной це-
лью проекта было создать среду разработки программного обеспечения
для быто
бытовой
вой элект
электрони
роники.
ки. Комп
Компания
ания Sun пост
поставила
авила задачу заме
заменить
нить
множ
мн ожес
еств
тво
о раразн
зноо
ообр
браз
азны
ныхх ар
архи
хите
тект
ктур
ур мимикр
крок
окон
онтр
трол
олле
леро
ров
в одно
однойй
единственной масштабируемой архитектурой (прототипом виртуальной
Java-машины). Затем проект был переориентиров
Java-машины). переориентирован
ан на World Wide Web
и в августе 1995 г. состоялся первый официальный выпуск Java.
Своим стремительным распространением в широких кругах сооб-
щества Java обязана необычайно удачному сочетанию следующих фак-
торов: быстрого роста сети Internet и телекоммуникационных техноло-
гий, возрастанию потребностей образования в новых подходах к про-
граммированию, успехам в создании мобильных, портативных вычисли-
тельных устройств.
Отметим принципиальные нововведения, которые отличают Java
от других: независимость небольших мобильных программ в сочетании
с генерацией кода в процессе выполнения, переносимость, строгая ти-
ся виртуальная
имеющийся машина Java — это
откомпилированный специальная
независимый программа,
байт-код которая
преобразует в
4
набор инс
набор инстр
трукц
укций
ий для кон
конкре
кретно
тного
го про
процес
цессор
сора.
а. Про
Прогр
грамм
амма
а дол
должна
жна
быть
быть пре
предв
двари
арител
тельн
ьно
о уст
устано
ановле
влена
на на ком
компью
пьютер
тер,, где пла
планир
нирует
уется
ся
запуск приложения.
Язык Java является объектно-ориентированным и поставляется с
достаточ
достаточно
но объем
объемной
ной библ
библиотек
иотекой
ой клас
классов.
сов. Библи
Библиотеки
отеки класс
классов
ов Java
значительно упрощают разработку приложений, представляя в распо-
ряжение программиста мощные средства решения стандартных задач.
Почти сразу же после появления Java было создано большое коли-
чество интегрированных сред разработки программ для этого языка:
Eclipse (Eclipse Foundation), NetBeans (Sun), JBuilder (Inprise), Visual Age
(IBM), VisualCafe (Symantec) и др. Причем, что интересно: большинство
из существующих инструментальных сред разработки приложений на-
писаны полностью на Java и имеют развитые средства визуального про-
граммирования.
Создавая это пособие, авторы стремились изменить установившее-
ся мнение о сложности языка Java, показать, что его с успехом может
использовать каждый — от школьника старших классов до специали-
стов в области IT. Различные пользователи, решая задачи с применени-
ем современных средств разработки, в зависимости от квалификации и
уровня компетенции могут применять разные подмножества языка. Ис-
пользуя среду Eclipse в качестве инструментария разработки приложе-
ний, постепенно углубляя свои знания, учащиеся будут постигать поис-
тине безграничные возможности, предоставляемые современной вычис-
лительной техникой и информационны
информационными
ми технологиями.
Пакет Eclipse может быть рекомендован к использованию в стар-
ших класс
классах
ах общео
общеобраз
бразоват
овательн
ельной
ой школ
школы,
ы, в каче
качестве
стве мате
материала
риала фа-
культативных занятий, элективных курсов, а также может быть при-
менен в специальных курсах профильного обучения. Программирование
на языке Java может использоваться как на уроках информатики, так и
в ходе самостоятельной работы.
Пособие
Посо бие снаб
снабжено
жено мног
многочис
очисленны
ленными
ми примерам
примерамии из школьного
школьного
курса информатики, которые наглядно иллюстрируют различные воз-
можности изучаемого объектно-ориентир
объектно-ориентированного
ованного языка.
Для закрепления материала, представленного в пособии, в конце
имеется практикум, где приведены задачи, многие из которых относят-
ся к школьному курсу информатики. Кроме того, в конце каждой главы
даны упражнения для самостоятельной работы.
Авторы с благодарностью примут все замечания и предложения от
читателей на адрес электронной почты spo_method_support@armd.ru
5
Введение
Программы, созданные на языке программирования Java, подраз-
деляются по своему назначению на две группы.
К перво
первойй груп
группе
пе отно
относятс
сятся
я прил
приложени
оженияя Java
Java,, пред
предназн
назначен
аченные
ные
для локальной работы под управлением интерпретатора (виртуальной
машины) Java.
Вторую группу программ называют апплетами (aplets). Апплеты
представляют собой небольшие специальные программы, находящиеся
на удаленном компьютере в сети, с которым пользователи соединяются
с помощью браузера. Апплеты загружаются в браузер пользователя и
интерпретируются
интерпретир уются виртуальной машиной Java, встроенной практически
во все современные браузеры.
Приложения, относящиеся к первой группе, представляют собой
обычные локальные приложения. Поскольку они выполняются интер-
претатором и не содержат машинного кода то их производительность
заметно ниже, чем у обычных компилируемых программ (С++, Delphi).
Апплеты Java можно встраивать в документы HTML и помещать на
Web-сервер. Использование в интернет-страницах Java-апплетов прида-
ет динамический и интерактивный характер поведению последних. Ап-
плеты берут на себя сложную локальную обработку данных, получен-
ных от Web-сервера или от локального пользователя. Для более быстро-
го выполнения апплетов в браузере применяется особый способ компи-
ляции
ляц ии — Ju
Just-
st-In-
In-Tim
Timee com
compil
pilat
ation
ion (JI
(JIT,
T, «на-ле
«на-лету)
ту)»,
», чт
что
о поз
позвол
воляет
яет ув
уве-
е-
личить скорость выполнения апплета в несколько раз.
Для разработки программ на языке Java нам потребуется специ-
альное программное обеспечение. Самые новые версии системного про-
граммного
грам много обесп
обеспечени
ечения,
я, необх
необходимо
одимогого для подде
поддержки,
ржки, можн
можноо загр
загру-
у-
6
Первая
Перв ая пл
плат
атфо
форм
рма
а J2J2SE
SE по
позв
звол
оляе
яет
т ра
разр
зраб
абат
атыв
ыват
ать
ь об
обыч
ычны
ные
е
(desktop) локальные приложения и апплеты.
Вторая платформа J2EE предназначена для разработки серверных
приложений (сервлетов, jsp-страниц, компонентов JavaBeans).
Третья платформа (J2ME) применяется при разработки приложе-
ний для мобильных и небольших устройств (сотовых телефонов, карман-
ных компь
компьютер
ютеров
ов и др.), которые имею
имеютт суще
существе
ственно
нно огран
ограничен
иченные
ные
аппар
аппаратн
атные
ые рес
ресур
урсы
сы (ем
(емкос
кость
ть опе
операт
ративн
ивной
ой пам
памяти
яти,, быс
быстр
троде
одейст
йствие
вие
процессора и др.).
Таким
Так им обр
образо
азом,
м, в мин
минима
имальн
льный
ый ком
компле
плект
кт для раз
разраб
работк
отки
и про-
про-
грамм на Java входят следующие:
● JRE — среда выполнения;
выполнения;
● JDK для соответствую
соответствующей
щей платформы (J2SE, J2EE, J2ME) —
компилятор и библиотеки;
● среда программиров
программирования.
ания.
Системы программирования
программирования на Java состоят из нескольких частей:
среда
среда разр
разработ
аботки,
ки, язык прог
программ
раммиров
ирования,
ания, прогр
программны
аммный й интер
интерфейс
фейс
приложений (Java API), различные библиотеки классов. В первой главе
подробно рассматривается одна из лучших сред разработки программ
Java Eclipse.
Программы Java обычно проходят пять стадий обработки, прежде
чем будут выполнены: редактирование, компиляция, загрузка, проверка
байт-кода и выполнение.
На первом этапе в редакторе Eclipse вводится программа, а затем
исправления в случае необходимости. Файл с программой необходимо
сохранить,, после окончательн
сохранить окончательного
ого редактирования он имеет стандартное
расширение «имя».java. С таким же успехом можно использовать рас-
пространенные текстовые редакторы vi, kate, kwrite и emacs. В Eclipse
содержится неплохой встроенный редактор и среда программирования,
поэтому мы рекомендуем все действия проводить там.
На сле
следую
дующем
щем вт
второ
ором
м эта
этапе
пе вы дол
должны
жны отк
откомп
омпили
илиров
ровать
ать про
про--
грамму, что достаточно просто сделать, выбрав команду Run главного
меню. Компилятор Java должен выполнить трансляцию программы Java
в байт-код, в этой форме она уже будет доступна интерпретатору Java.
Если ваша программа успешно откомпилируется, то будет создан файл
с именем «имя».class. В данном файле содержатся байт-коды, которые
будут интерпретироваться
интерпретироваться во время выполнения.
Третий этап называется загрузкой. Программа помещается в опе-
ратив
ративную
ную пам
памят
ять
ь и ей пер
переда
едает
ется
ся упр
управл
авлени
ение.
е. За
Загру
грузч
зчик
ик кла
классо
ссов
в в
7
8
Глава
Глава 1
1.. Сре
Среда
да ра
разра
зработ
ботки
ки п
прил
риложе
ожений
ний Ecl
Eclips
ipse
e
Eclipse — один из лучших инструментов Java, созданных за послед-
ние годы. SDK Eclipse представляет собой интегрированную среду раз-
работки (IDE, Integrated Development Environment) с открытым исход-
ным кодом.
В начале своего существования Eclipse появилась как коммерче-
ский продукт, но в ноябре 2001 г. его исходные коды были опубликова-
ны.. Со
ны Созд
здат
ател
елем
ем сисист
стем
емы ы явявля
ляет
ется
ся ко
комп
мпан
ания
ия ObObje
ject
ct TeTech
chno
nolo
logy
gy
International (OTI), которая впоследствии была приобретена корпораци-
ей IBM. Начиная с 2001 г. Eclipse была загружена более 50 миллионов
раз и в настоящее время используется десятками тысяч программистов
по всему миру. Поддержкой и разработкой Eclipse в настоящее время
занимает
зани мается
ся орган
организац
изация
ия Eclip
Eclipse
se Foun
Foundati
dation
on и сообщ
сообществ
ество
о Eclip
Eclipse,
se, ин-
формацию о которых можно найти на официальном сайте в сети Интер-
нет http://www.eclipse.org
http://www.eclipse.org..
Основн
Осн овные
ые инс
инстр
труме
умента
нтальн
льные
ые сре
средст
дства
ва Ecl
Eclips
ipse
e Ja
Java
va вкл
включ
ючаю
ают т в
себя: редактор исходного кода (создание и редактирование исходного
текста программ), средства отладки и интеграции с Ant. Кроме этого в
Eclipse
Eclipse досту
доступны
пны множ
множеств
ествоо беспл
бесплатны
атных
х и коммерчес
коммерческих
ких допол
дополнений
нений
(плагинов), таких, как инструментальные средства создания схем UML,
разработка
разработ ка баз данных и др.
Собственно сама по себе Eclipse — это только платформа, которая
предостав
предо ставляет
ляет возм
возможно
ожность
сть раз
разраба
рабатыва
тывать
ть дополнения
дополнения,, назы
называемы
ваемые
е
плагинами, которые естественным образом встраиваются в платформу.
В Eclipse доступны дополнения для следующих языков: C/C++, Html,
Cobol, Perl, Php, Ruby и др. Вы можете также разработать собственное
дополнение для расширения возможностей Eclipse.
1.1.
1.1. Сист
Систем
емны
ные
е треб
требов
ован
ания
ия
Eclipse разработана для широкого круга операционных систем, та-
ких как Linux, Microsoft Windows и Mac OS. Для ее запуска требуется
JVM (Java Virtual Machine) — виртуальна
виртуальная
я Java-машина, а также JDK
(Java Development Kit) — набор для Java-разработки. Загрузить данные
пакеты
паке ты можно с офиц
официаль
иального
ного сайта разраб
разработчи
отчика
ка Jav
Java
a — http://java.-
sun.com.. В стандартной сборке ALT Linux «Мастер» данные пакеты уже
sun.com
предустановлены
В табл. 1 представлены минимальные и рекомендуемые систем-
ные требования для работы Eclipse.
9
Таблица 1
Системные требования
Минимальное значе- Рекомендуемое зна-
Требование
ние чение
Версия Jаva 1.4.0 1.6.0 и выше
Оперативная память 128 Мб 1 Гб и более
Свободное про- 300 Мб 1 Гб и более
странство на ЖД
Процессор 533 МГц 1,5 ГГц и более
1.2.
1.2. Введ
Введен
ение
ие в Ecl
Eclip
ipse
se
При первоначальном знакомстве со средой IDE Eclipse она может
показать
пока заться
ся неско
несколько
лько слож
сложной
ной для непод
неподгото
готовленн
вленного
ого пользоват
пользователя.
еля.
Для того чтобы понять основы работы с системой, нужно уяснить себе
осно
основн
вные
ые коконц
нцеп
епци
ции
и ср
сред
еды:
ы: ра
рабо
бочечее
е пр
прос
остр
тран
анст
ство
во,, инст
инстру
руме
мент
нты,
ы,
компоновки, редакторы и представления.
Рабочее пространство
В просте
простейше
йшемм слу
случа
чаее рабочее пространство (workspace)
(workspace) — это
каталог
каталог для прое
проектов
ктов поль
пользова
зователя
теля,, в кото
котором
ром рас
располаг
полагают
аются
ся файл
файлыы
проекта. Все, что находится внутри этого каталога, считается частью
рабочего пространства.
пространства. В нашем пособии будет использоваться для при-
меров рабочее пространств
пространство:
о: /home/user/w
/home/user/workspace.
orkspace.
Инструментальные средства Eclipse
Инструмен
Инст рументаль
тальные
ные сред
средства
ства Eclip
Eclipse
se стан
становят
овятся
ся дост
доступны
упны сраз
сразуу
после запуска приложения. Это по существу сама платформа с набором
различных функциональных возможностей главного меню, где прежде
всего выделяется набор операций по управлению проектом. Фактиче-
ская обработка, как правило, осуществляется дополнениями (плагина-
ми), на
ми), напри
пример
мер ред
редактактиро
ирован
вание
ие и про
просмо
смотр
тр файлов
файлов про
проект
ектов
ов осу
осуще-
ще-
ствляется JDT, и т.д.
К инст
инструмен
рументамтам (wor
(workben
kbench)
ch) отно
относитс
сится
я набо
набор
р соответс
соответствую
твующих
щих
редакторов и представлений
редакторов представлений,, размещенных в рабочей области Eclipse
(р
(рис.
ис. 6). Для кон
конкре
кретн
тной
ой зад
задачи
ачи опр
опреде
еделен
ленны
ныйй наб
набор
ор ре
редак
дакто
торов
ров и
представлений называют перспективой
перспективой или
или компоновкой
компоновкой..
Компоновки
Компоновка (perspective) — это набор представлений и редакто-
Компоновка
ров, расположенных в том порядке, который вам требуется. В каждой
компоновке присутствует свой набор инструментов, некоторые компо-
новки могут иметь общие наборы инструментов. В определенный мо-
мент времени активной может быть только одна компоновка. Переклю-
10
чение меж
чение между
ду ра
разли
зличн
чными
ыми ком
компон
поновк
овками
ами осу
осущес
ществ
твляе
ляется
тся наж
нажати
атием
ем
клавиш <Ctrl+F8>.
Используя компоновки, вы можете настроить свое рабочее про-
странство под определенный тип выполняемой задачи. В пособии будут
использоваться компоновки, связанные в основном с программировани-
ем на Java, такие, как: Debug, Java Browsing, Java.
В Eclipse имеется также возможность создавать свои компоновки.
Открыть компоновку можно командой Window / Open Perspective.
Редакторы
Редакторы представляют
Редакторы представляют собой программные средства, позволяю-
щие осуществлять операции с файлами (создавать, открывать, редакти-
ровать, сохранять и др.).
Представления
Представления по существу являются дополнениями к редакто-
Представления
рам, где выводится информация сопроводительного или дополнительно-
го характера, как правило, о файле, находящемся в редакторе. Открыть
представления можно командой Window / Show View. Наиболее часто
используемые представления для различных компоновок приведены в
табл. 2.
Таблица 2
Компоновки
Компоновка Представление
Debug Breakpoints, Debug, Variables,
Expressions, Task, Outline, Console
Java Browsing Projects, Packa
Packages,
ges, Types, Memb
Members
ers
Hierarchy,
Declaration Outline, Javadoc,
Проект
Проект (project)
Проект (project) представляет собой набор файлов приложения и
сопутствующих дополнений. При работе с Java используются в основ-
ном файлы, имеющие следующие расширения: .java, .jsp, .xml.
Дополнение
Дополнением (plu
Дополнением (plug-in)
g-in) назы
называют
вают прил
приложени
ожение,
е, кото
которое
рое допол
дополни-
ни-
тельно может быть установлено в Eclipse. Примером дополнения может
выступать JDT.
11
Мастера
Мастер — это программное средство, которое помогает пользова-
телю в настройках и проведении сложной операции. В Eclipse имеется
множество различных мастеров, которые делают работу пользователя в
систем
системее удо
удобно
бной
й и эфф
эффект
ективн
ивной,
ой, бер
беря
я час
часть
ть рутинн
рутинных
ых опе
операц
раций
ий на
себя.
себя. Пр
Приме
имером
ром мас
масте
тера
ра мож
может
ет выс
выступ
тупить
ить мас
мастер
тер соз
создан
дания
ия нов
нового
ого
класса, который помогает пользователю в таких операциях, как созда-
ние нов
нового
ого фай
файла
ла в нуж
нужной
ной дир
директ
ектори
ории,
и, соз
создан
дание
ие на
начал
чально
ьного
го код
кода
а
класса, автоматическая
автоматическая расстановка модификаторов и т.д. (рис. 1).
1.3.
1.3. Уста
Устано
новк
вка
а Ecl
Eclip
ipse
se
Перед тем как запустить Eclipse, требуется убедиться, что на ва-
шем компьютере установлена необходимая среда выполнения JRE (вер-
сия 1.3 или более поздняя). Проверить версию установленной JRE на
компьютере можно командой, введенной в командной строке:
java -version
Если Eclipse не установлен в сборке Linux, которую вы используе-
те, его можно установить с DVD диска Linux «Мастер». Произвести его
установк
уста новку
у можн
можно о с помо
помощью
щью менед
менеджера
жера пакет
пакетов
ов Synapti
Synaptic.
c. Запустит
Запустить
ь
12
13
1.4.
1.4. Перв
Первый
ый запу
запуск
ск Ecli
Eclips
pse
e
Первое окн
Первое окно,
о, кот
которо
орое
е ото
отобра
бразит
зится
ся на экр
экране
ане — эт это
о диа
диалог
логово
овое
е
окно выбора рабочего пространства (workspace) (рис. 3).
14
16
2) Jav
Javado
adoc c — ото
отобра
бражен
жение
ие ком
коммен
ментар
тариев
иев к выб
выбраранны
нным м объ
объек-
ек-
там;
3) De
Decla
clara
ratio
tion
n — ототобр
ображе
ажение
ние час
части
ти код
кода,
а, в кот
которо
оромм про
происх
исхо-
о-
дит декларация выбранного объекта;
4) Conso
Consolele — системн
системнаяая консо
консоль,
ль, в котору
которуюю происх
происходит
одит выв
вывод
од
данных программы.
● Перспективы (компоновки)
(компоновки) (№ 3, рис. 6)
Позволяют переключаться из одной компоновки в другую. В посо-
бии будут использ
использоват
оваться
ься следую
следующие
щие компо
компоновки
новки:: Java,
Java, Debu
Debugg и
Java Browsing
Browsing (рис. 7);
● Редактор кода (№6, рис. 6)
Предназначен
грамм Java. для ввода и редактирования исходного текста про-
17
1.5.
1.5. Инте
Интерф
рфей
ейс
с пол
польз
ьзов
оват
ател
еля
я
Рассмотрим подробнее назначение основных компонентов, состав-
ляющих интерфейс пользователя. В нашем пособии мы в основном бу-
дем работать с компоновкой Java.
Таблица 3
Главное меню
Команда Назначение
меню
File Содержит элементы управления проектами и файла-
ми. Позволяет создавать новые проекты, классы, интерфей-
сы и пр., сохранять, закрывать, переносить, переименовы-
вать, экспортировать имеющиеся структуры проекта, а так-
же импортировать внешние объекты, изменять местополо-
жение рабочего пространства и переключаться между раз-
личными рабочими пространствами
пространствами
Edit Содержит э
эл
лементы у
уп
правления т
те
екстовой и
ин
нформа-
цией: копирование,
последнего
после днего дейст вырезание,
действия,
вия, возв
возврат вставка,
рат после удаление,
отме
отмены, отмена
ны, добав
добавление
ление
закладок и заданий, а также поиск
Source Содержит ээллементы ууп
правления иис
сходным кко
одом, тта
а-
кие,, как
кие как:: упр
управл
авлени
ение
е имп
импорт
ортом
ом эле
элемен
менто
тов,
в, упр
управл
авлени
ениее
комм
комменента
тари
риям
ями,
и, ге
гене
нера
раци
цию
ю мето
методо
дов
в и конс
констр
трук
укто
торо
ровв
классов и т.д.
Refactor Рефакторинг эл
эле
ементов пр
про
оекта. По
Пом
могает п
прроизво-
дить модификации членов проекта (классов, методов и по-
лей), такие, как перемещение, переименование и пр. без
потери связей и целостности приложения
Navigate Содержит элементы навигации по проекту
Search
Search Осно
Основной
вной инст
инструмен
румент
т поиск
поиска.
а. Искать
Искать можн
можноо файл
файлы,
ы,
проекты и текст в любом диапазоне от файла до рабочего
пространства
Project Инструмент у
уп
правления ппр
роектами: оот
ткрытие, з
за
акры-
тие, компиляция, генерация javadoc и пр.
Run Управление з
заапуском приложения, по
п озволяет з
заапу-
стить приложение, отладку, а также приложения по точ-
кам прерывания
Window
Window Управление окнами и перспективами. Переключение
между компоновками. Вызов требуемых представлений
18
Команда Назначение
меню
Help Вызов справки, а также содержит вызов обновлений и
описание программы Eclipse
Панель инструментов
Данная панель содержит кнопки быстрого доступа к наиболее ча-
сто используемым функциям Eclipse. Кнопки по функциональному на-
значению сгруппированы в группы. Первая группа — создание (проек-
та, пакета, класса, интерфейса, перечисления и т.д), сохранение и пе-
чать
чать от
отно
носи
ситс
тся
я к ко
кома
манд
нде
е Fi
File
le.. Вт
Втор
орая
ая гр
груп
уппа
па — ототла
ладк
дка,
а, за
запу
пуск
ск и
запуск с параметрами — относится к команде Run. Третья группа — но-
вый проект, новый пакет и новый Java-файл (класс, интерфейс, перечис-
ление) — дублирует первую кнопку для максимально быстрого доступа.
Последняя, четвертая, группа содержит кнопки, относящиеся к поиску
и навигации.
Представления
Окна браузера проекта и иерархии
Окно, в котором приводится древовидная структура проекта, пред-
назначено для быстрого просмотра или выбора элемента в иерархии
классов проекта. Здесь в виде дерева отображается структура проекта,
с пом
помощь
ощью ю кот
которо
орой
й мож
можно
но быс
быстротро пер
перекл
еключ
ючать
аться
ся меж
междуду пак
пакет
етами
ами,,
классами, методами и полями проекта приложения.
Окна отчетности
В этих окнах отображаются основные события при работе с прило-
жением — ошибки (вкладка Problems); комментарии (вкладка javadoc);
код декларации (вкладка declaration).
Перспективы
С помощью кнопки производится переключен
переключениеие между различ-
ными компоновками, такими, как Java, Debug, Java Browsing, C++ и др.
Быстрые окна
Кнопка «быстрые окна», или быстрый вызов представления, нахо-
дится в левом нижнем углу рабочего стола (№ 9, рис. 6).
Данная кнопка добавляет в окно браузера проекта различные па-
нели (представления), такие, как Ant, Problems, Search, Navigator и т.д.
Если
Ес ли вы слслуч
учай
айно
но за
закр
крыл
ылии какаку
кую-
ю-ли
либо
бо пане
панель
ль,, на
напр
прим
имер
ер Pa
Pack
ckag
age
e
Explorer, с помощью данной кнопки можно ее восстановить.
При вызове новой панели с помощью данной кнопки, вызываемая
панель помещается поверх всех структурных элементов рабочего стола,
закрывая собой некоторую часть рабочего стола. Для более оптималь-
19
20
4. Вы мож
можете
ете на
навест
вести
и курсо
курсор
р на ма
маркер
ркер в в
верти
ертикаль
кальной
ной лин
линей-
ей-
ке для отображения описания ошибки (рис. 10).
22
5. Щел
елккни
нит
те кн
кно
опку «Закр
пку «Закрыть»
ыть» ("X"
("X")) на вкла
вкладке
дке реда
редактор
ктора,
а,
что бы его закрыть.
6. В пре
предст
дставл
авлени
ении
и Pro
Proble
blems,
ms, выбе
выберит
рите е про
пробле
блему
му из спи
списка
ска..
Открыв его контекстное меню и выберите «Go To» (рис. 11). Файл
откроется в редакторе на проблемном месте.
7. Ис
Исппра
равь
вьте
те ош
ошиб
ибку
ку пу
путе
тем
м до
доба
бавл
влен
ения
ия фи
фигу
гурн
рной
ой скоб
скобки
ки..
Щелкните кнопку «Save». Проект соберется заново и все маркеры
ошибок пропадут.
8. Cтроку System.out.print(«Hello»); измените на
System.out.print(«Hello»+x);.
9. В проце
процессе
ссе вво
ввода,
да, оши
ошибка
бка отм
отмети
етится
тся вол
волнис
нистой
той линией
линией на
переменной x, для индикации проблемы. Наведение курсора на
подчеркнутое слово, вызывающее проблему вызовет всплывающее
окно с описанием данной проблемы.
10. ВЛампочка
почкой. верти
вертикал
кально
ьнойй линей
линейке
ке марк
сигнализируетмаркеро
еров
о том, в появи
появится
что для тся зна
значок
данной чок с ла
лам-
м-
проблемы
доступны варианты коррекции (рис. 12).
23
11. Щел
Щелкни
кните
те на проб
проблем
лемное
ное мес
место
то,, и выберит
выберитее Qu
Quick
ick Fix из
пунк
пункта
та Ed
Edit
it ст
стро
роки
ки ме
меню
ню.. Вы та
так
к же моможе
жете
те на
нажа
жать
ть кл
клав
авиш
ишии
Ctrl+1 или щелкнуть левой кнопкой мыши на лампочке. Отобра-
зится диалог с возможными вариантами исправлений (рис. 13).
тием кнопки
ра, либо , находящейся
командой в левом
из главного менюнижнем углуwдля
Window/Sho
Window/Show быстрого просмот-
View/Navigator.
В папке src
src (source)
(source) вы видите список файлов с расширением .java
— это исходные тексты программы.
В папке bin
bin (binary)
(binary) находятся скомпилированные файлы классов
программы, содержащие двоичный байт-код Java. Файлы с расширени-
ем .classpath и .project содержат служебную информацию о расположе-
нии классов и структуре проекта.
Панель Outline
Панель
Панел ь (пре
(представ
дставление
ление)) Outl
Outline
ine отоб
отобража
ражает
ет струк
структуру
туру теку
текущего
щего
открытого файла Java, где в виде дерева отображаются структуры ООП
(классы, поля, методы и т.д.), находящиеся в текущем открытом файле.
Как и другие панели, она может быть вызвана нажатием кнопки , нахо-
24
1.6.
1.6. Наст
Настро
ройк
йки
и сред
среды
ы
Перед началом работы можно настроить поведение оболочки под
свои требования. Окно настроек (рис. 14) можно открыть из главного
меню, выбрав Window/Pr
Window/Preferences.
eferences.
25
26
1.7.
1.7. Созд
Создан
ание
ие прое
проект
кта
а
Проект Java представляет собой каталог на жестком диске, содер-
жащий библиотеки JRE, исходные коды, картинки и прочее. Управлять
содержимым пакета лучше с помощью среды. Хотя никто не запрещает
изменять содержимое файлов и структуру каталогов в проекте с помо-
щью сторонних редакторов и браузеров, все же рекомендуется это де-
лать средствами IDE, поскольку возможны серьезные ошибки и сбои
при компиляции и работе приложения в случае использования других
программ.
Пример. Создадим новый проект с именем Hello. Нажмите на чер-
ный треугольник кнопки на панели инструментов и в раскрывшем-
ся списке (рис. 15) выберите Java Project (Проект Java).
27
28
29
31
При нали
наличии
чии неско
нескольки
лькихх прое
проектов
ктов лучш
лучшее закр
закрыть
ыть пред
предыдущи
ыдущий й
проект перед открытием или созданием нового проекта. Для закрытия
проекта нужно выделить в окне Package Explorer нужный проект, затем
в строке меню, в пункте «Project», выбрать «Close», либо, щелкнув пра-
вой кнопкой мыши на проект в Package Explorer, в раскрывающемся
меню выбрать пункт «Close».
Компиляция и запуск средствами командной строки
Исходн
Исх одные
ые те
текст
кстыы jav
java-п
a-прог
рогра
рамм
мм мож
можноно от
отком
компил
пилиро
ироват
вать
ь сред-
сред-
ствами пакета JDK. Для компиляции используется модуль javac, а для
запуска скомпилированных .class файлов — интерпретатор java.
Что бы произвести компиляцию исходного файла .java, содержа-
щего код программы, в консоли (терминале) достаточ
достаточно
но ввести строку:
[options]] имя_файла [@argfiles
javac [options @argfiles]]
Options — параметры компиляции, задающиеся с помощью симво-
ла «-». Например:
-version — информация о версии установленного ПО;
-encoding — установка кодировки текста компилируемого файла;
-nowarn — отключение отображения предупреждений.
Подробную
Подро бную инфо
информац
рмацию
ию о имею
имеющихся
щихся пара
параметр
метрах
ах компи
компиляци
ляциии
можно узнать с помощью команды:
man javac
Имя_файла — это имя файла, содержащего исходный код програм-
Имя_файла —
мы. По умолчанию, при запуске с терминала, текущим каталогом яв-
ляется
ляет ся дома
домашняя
шняя папк
папка
а поль
пользова
зователя
теля /hom
/home/ user. В качест
e/user. качестве
ве име
имени
ни
файла указывается либо полное имя файла, вместе с путем до указанно-
го .java-файла, либо собственное имя.
@argfiles — параметр, предназначенный для упрощения команды
компиляции. Если необходимо откомпилировать несколько файлов, то
требуется записать список имен файлов в текстовый файл (например
files), а список параметро
параметров в в другой (например params). Затем командой
javac @params @files можно будет произвести компиляцию указанных
классов с заданными параметрами, тем самым значительно упрощая
саму команду.
В качестве примера произведем компиляцию из терминала про-
стейшей программы, которая была использована в разделе описания
ошибок. Исправьте все ошибки в этой программе и сохраните ее. Файл
исходного кода программы находится в папке
user /workspace
/home/user
/home/ workspace// Hello/src/ErrorTests.java
Hello/src/ErrorTests.java
32
1.8.. Подде
1.8 Поддержк
ржка,
а, советы
советы,, рекомен
рекомендуе
дуемы
мые
е ресурсы
ресурсы
Общие советы
Eclipse — многофункциональная и гибко настраиваемая платфор-
ма, которая имеет множество настроек, подробное изложение которых
заняло бы очень много места и времени. Мы рекомендуем начинающим
использовать справочную систему (Help) Eclipse. Там вы найдете мно-
жест
же ство
во со
сове
вето
тов
в и ре
реко
коме
менд
ндац
аций
ий по ра
разл
злич
ичны
нымм пр
прие
иема
мамм ра
рабо
боты
ты с
Eclipse.
Закладки
Закладки удобно использовать при работе с кодом, содержащим
большое число строк. Находясь в редакторе, выберите пункт Edit/Add
Bookmark. Представление Bookmark позволяет просматриваться и пере-
двигаться по закладкам.
Восстановление конфигурации
При восстановлении исходной конфигурации (после ее случайного
измене
изменения
ния)) нео
необхо
бходим
димоо про
продел
делать
ать сле
следую
дующие
щие ком
команд
андыы из гла
главно
вного
го
меню: Window/Reset Perspective.
Мастер очистки
Если у вас склад
складывае
ывается
тся впеч
впечатле
атление,
ние, что отко
откомпил
мпилирова
ированные
нные
файлы .class не синхронизируются в Eclipse, когда не учитываются из-
менения или вы видите сообщение об ошибках неожиданного содержа-
ния, зап
запустит
уститее маст
мастера
ера очис
очистки
тки Clean коман
командой
дой Proe
Proect/C
ct/Clean
lean.. Данная
Данная
команда сбрасывает все результаты
результаты предыдущих сборок проекта, а если
33
Скрытые файлы
Надо иметь в виду, что при создании проекта создаются скрытые
файлы и каталоги, например .classpath, .project, metadata и др. При уда-
лении проекта не забудьте их удалить, если вы хотите оставить каталог
проекта.
Удаление Eclipse
Удаление Eclipse, как и установка, осуществляется при помощи
менеджера
менед жера пакет
пакетов
ов Syna
Synaptic.
ptic. Для осущ
осуществ
ествления
ления опера
операции
ции удаления
удаления
необходимы права суперпользова
суперпользователя.
теля.
В табл. 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
Рекомендуемые
Рекомендуемые ресурсы
Eclipse
1. Пла
Платф
тформ
ормааE Ecli
clipse
pse — http://www.eclipse.org/
2. Соо
Сообще
бществ
ство
оEEcli
clipse
pse — http://www.eclipse.org/community/
3. Стат
Статьи,
ьи, посв
посвящен
ященные ные Eclip
Eclipse
se — http://www.eclipse.org/articles
4. Оф
Офици
ициаль
альный
ный обобзор
зор Ec
Eclip
lipse
se —
http://www.eclipse.org/
http://www.eclipse.org/whitepapers/eclip
whitepapers/eclipse-overview.pdf
se-overview.pdf
5. Кон
Конфер
ференц
енция
ия Ec
Eclip
lipseC
seCon
on — http://www.eclipsecon.org/
6. Comm
Common on Pu
Public
blic LLicens
icensee Ver
Version
sion 1
1.0
.0 —
http://www.eclipse.org/
http://www.eclipse.org/legal/cpl-v10.html
legal/cpl-v10.html
7. Списо
Список к реком
рекомендуе
ендуемоймой ли
литера
тературы
туры п по
о Eclip
Eclipse
se —
http://www-128.ibm.com/
http://www-128.ibm.com/developerwork
developerworks/library/os-ecl-rea
s/library/os-ecl-read/?
d/?
S_TACT=105AGX01&S_CMP=LP
8. Ресурсы для разработчика в Eclipse —
http://www.ibm.com/
http://www.ibm.com/developerworks/
developerworks/ru/opensource/to
ru/opensource/top- p-
projects/eclipse.html
Ant
Ant — http://ant.apache.org/
Apache
Web-сервер Apache — http://www.apache.org/
OpenOffice.org
Офисный пакет — http://www.openoffice.org/
Java
1. До
Докукуме
мент
нтац
ация
ия по кл
клас
асса
сам
м Ja
Java
va.. [Эле
[Электктро
ронн
нный
ый ре
ресу
сурс
рс]] —
http://java.sun.com/docs/
2. Уч
Учеб
ебны
ныее по
посо
соби
бия
я по Ja
Java
va (Jav
(Java
a Tu
Tuto
tori
rial)
al).. [Эле
[Элект
ктро
ронн
нный
ый рере--
сурс] — http://java.sun.com/docs/books/tutorial/
3. От
Отве
веты
ты на час асто
то за
зада
дава
ваем
емыеые во
вопр
прос
осыы (F
(FAQ
AQ).
). Лин
инде
ден
н П.
[Электронный ресурс] — http://www.afu.com/javafaq.html
Конференции
1. Сете
Сетевая
вая ко
конфер
нференци
енци п
прогр
рограмми
аммистов
стов JJava
ava
Comp.lang.java.programmer
2. Сете
Сетевая
вая к
конфе
онференц
ренци
и Com
Comp.la
p.lang.ja
ng.java.*
va.*
35
Контрольные вопросы
1. Укажи
Укажите,
те, для как
каких
их целей пр
предназ
едназначе
начена
на IDE Ecl
Eclipse.
ipse.
2. Ука
Укажит
жите е пос
послед
ледова
овате
тельн
льност
ость
ь дей
действ
ствий
ий для выз
вызов
оваа па
панел
нели
и
Outline.
3. Переч
Перечислит
ислитее основны
основные е предст
представлен
авления,
ия, дост
доступные
упные в перс
перспек-
пек-
тиве Java.
4. Суще
Существуе
ствуетт ли возмож
возможность
ность соз
создать
дать про
проект
ект Eclip
Eclipse
se на основе
уже готовых исходных текстов, созданных в других средах разра-
ботки? Что для этого необходимо сделать?
5. Для каки
какихх целей испол
используе
ьзуется
тся предс
представл
тавление
ение Pro
Problem
blems?s?
36
Глава
Глава 2
2.. Отл
Отладк
адка
аит
тест
естиро
ирован
вание
ие п
прил
риложе
ожений
ний
Отладка — это процесс пошаговой проверки программ и приложе-
ний с целью выявления ошибок.
Процесс отладки характеризуется тем, что программа останавли-
вается каждый раз в точках прерывания. Если вы забыли установить
точки прерывания, то отладка не будет отличаться от обычного запус-
ка.
Рассмотрим отладку на примере. Создайте новый класс с именем
Debuging и введите предложенный в листинге код.
public class Debuging {
public static void main(String[] args){
for (int i=0;i<10;i++){
System.out.print("Шаг "+i+"\n");
}
}
}
Для запуска отладчика нажмите кнопку с изображением жука.
37
ку , на экра
экране
не появ
появится
ится диало
диалоговое
говое окно (рис
(рис.. 22), предлагаю
предлагающее
щее
переключить режим рабочего стола из Java в Debug.
38
39
40
И так далее
далее,, нажи
нажимая
мая клав
клавишу
ишу F8 или кнопку
кнопку , прог
программ
раммаа бу-
дет переходить от одной точки прерывания к другой. Если точка преры-
вания
вания уст
устано
ановле
влена
на на опе
опера
ратор
тор,, на
наход
ходящи
ящийся
йся в цик
цикле,
ле, про
програ
грамма
мма в
этом случае будет останавливаться на этой точке столько раз, сколько
раз будет проходить цикл.
В отладчике
отладчике Eclipse есть еще одна полезн
полезная
ая функц
функция,
ия, с помощью
помощью
которой можно увидеть значения сложных выражений. Например, нас
интересуе
инте ресует
т знач
значение
ение логи
логическо
ческого
го выр
выражен
ажения
ия (условие)
(условие),, при кото
котором
ром
выполняется цикл. Для этого выделите нужный текст, в нашем случае
это i<10 в блблок
окее ус
усло
лови
вия
я ци
циклкла,
а, и на
нажм
жмит
ите
е со
соче
чета
тани
ние
е клав
клавиш
иш
<Ctrl>+<Shift>+D, появится всплывающее окно, в котором будет отоб-
ражен тип выражения (в нашем случае это boolean) и его состояние.
Когда программа дойдет до конца, отладка закончится. Для повто-
ра отладки нужно еще раз нажать кнопку .
Для прер
прерыван
ывания
ия рабо
работы
ты отла
отладчик
дчика
а нажм
нажмите
ите кнопк
кнопку
у в панели
панели
Debug.
41
Помимо отла
Помимо отладки
дки c испо
использо
льзование
ваниемм безусловны
безусловныхх точ
точек
ек прер
прерыва
ыва--
ния, возможно доподополнит
лнительно
ельно уста
установи
новить
ть услов
условия
ия оста
останова
нова на точк
точкее
прерывания. Это очень полезная особенность отладчика Eclipse, кото-
рая позволяет в некоторых случаях значительно упростить процесс от-
ладки.
Для того, чтобы задать условие, при котором будет происходить
останов, нужно открыть окно свойств точки прерывания. Для этого на-
ведите курсор мыши на нужную точку прерывания в строке, нажмите
прав
пр авую
ую кн
кноп
опку
ку мымыши
ши,, и вы
выбе
бери
рите
те в ра
раск
скры
рыва
вающ
ющем
емся
ся ме
меню
ню пу
пунк
нктт
Breakpoint Properties, откроется окно свойств выбранной точки преры-
вания (рис. 28 ).
Установите галочку на кнопке выбора Enable Condition (Включить
Условие) и в поле ввода введите необходимое условие, при котором бу-
дет происходить останов на данной точке. Для примера, введите логи-
ческое
ческ ое выраже
выражение
ние (i%2)==0. Данное выражение будет принимать зна-
чение
чени е «ист
«истина»
ина» каждый раз, когда остат
остаток
ок от деления i на 2 будет ра-
вен 0, то есть каждый раз, когда i будет принимать четные значения.
Запустите процесс отладки и убедитесь в том, что теперь останов будет
происходить каждые два прохода цикла, а не один, как было раньше.
Так же можно выбрать тип условия прерывания — ниже, под по-
лем ввода находится две кнопки выбора — condition is 'true' и value of
condition changes. При выборе первого, останов будет происходить каж-
дый раз, когда введенное логическое выражение примет значение «ис-
тина»
тина»,, при выб
выборе
оре вт
второ
орого,
го, ост
остано
ановв буд
будет
ет про
происх
исходи
одить
ть каж
каждый
дый раз
раз,,
когда введенное значение или константа изменит свое значение.
Раскрывающийся
Раскрываю щийся списо
список
к Susp
Suspend
end Polic
Policy
y уста
устанавл
навливае
ивает
т полит
политику
ику
останова. При выборе значения Suspend Thread останов будет происхо-
дить на уровне текущего потока thread, при выборе Suspend VM — на
уровне самой виртуальной машины Java.
42
43
Глав
Глава
а 3. Ла
Лабо
бора
рато
торны
рный
й пр
прак
акти
тику
кум
м
Лабораторная работа №1
Тема работы. Введение в среду программир
программирования
ования Eclipse.
Цель работы. Начальное знакомство
знакомство с IDE Eclipse.
Содержание
Содер жание работ
работы.
ы. Рассматриваются базовые компоненты ин-
терфейса пользователя Eclipse. Компоновки, представления. Создание
проекта, создание и операции с классами.
Задания к работе
1. Уста
Установит
новитее последо
последовате
вательно
льно комп
компонов
оновки
ки на вашем рабоч
рабочемем
столе: Java, Java Browsing, Debug. Укажите функции и назначение
этих компоновок.
2. Раб
Работа
ота с пре
предст
дставл
авлени
ениями
ями.. В компон
компоновк
овкуу Jav
Java
a доб
добав
авьте
ьте но-
вые
вые пре
предст
дставл
авлени
ения:
я: Pro
Proble
blems,
ms, Mem
Memberbers
s и затем
затем их зак
закро
ройте
йте.. В
компоновку Java Browsing добавьте новые представления: Debug,
Display, Memory и затем их закройте.
3. Созда
Создайте
йте новы
новый й проек
проектт newPr
newProject
oject1.
1. Добав
Добавьте
ьте в него три пупу--
стых класса: wnclass1, wnclass2, wnclass3.
4. Пер
Переим
еимену
енуйте
йте клас
классы,
сы, созда
созданны
нныее в за
задан
дании
ии 3: fqrs1,
fqrs1, fqrs2
fqrs2,,
fqrs3.
44
5. Изме
Измените
ните мест
место
о распол
расположени
ожение е на диске классо
классов
в помест
поместив
ив их
в новый предварительно созданный каталог New.
6. Удали
Удалите
те п
проект
роект созда
созданный
нный в зад
задании
ании 3.
7. Созда
Создайте
йте нов
новый
ый прое
проект
кт Eclip
Eclipse
se c именем nenewCloc
wClock
k из приме-
ра апплета JDKX.X.X./Demo/Clock.
Лабораторная работа №2
Тема работы. Введение в язык программиро
программирования
вания Java.
Цель
Цель рабо
работы
ты.. Перв
Первое
ое знако
знакомств
мство
о с языко
языком
м программир
программирован
ования
ия
Java.
Содержание работы. В данной работе подробно рассматривают-
ся программы, на основе которых учащиеся познакомятся со структу-
рой простейших программ Java.
П р о г р а м м а 1 . Простейшая программа.
public class
01 public Hello {
class Hello
02 public static
public void
static main(String[] args) {
main(String[]
03 System.out.print("Добро пожаловать в мир Java!");
04
05 } }
Внимание: с цел целью
ью обл
облегч
егчени
енияя ком
коммен
ментир
тирова
ования
ния тек
текста
ста про
про--
грамм практикума в листинги программ добавлена нумерация строк,
которую вы не найдете в редакторе кода Eclipse.
Данная программа выводит сообщение на консоль (или в команд-
ную строку). Приводится описание класса с именем Hello в строке (01),
в котором имеется только один метод main()(02). При запуске програм-
мы управление передается этому методу и сразу же происходит вывод
сообщения на консоль.
В самом начале не нужно пытаться понять, как устроен процесс
вывод
вы вода,а, он дос
доста
таточ
точно
но сло
сложны
жный,
й, нуж
нужно
но пр
прост
осто
о пом
помнит
нить,
ь, чт
что
о выв
вывод
од
производится конструкцией,
конструкцией, назыв аемой объектом стандартного вы-
называемой
вода System.out с использованием метода print. Метод println позво-
вода
ляет после вывода строки осуществить переход курсора на новую стро-
ку.
П р о г р а м м а 2 . Вывод текста несколькими строками.
01 class
public
public Hello2 {
class Hello2
02 // В
Выпо
ыполня
лнятся
тся при
прилож
ложени
ение
е Ja
Java
va на
начин
чинает
ает с мет
метода
ода mai
main
n
03 public static
public void
static main(String[] args) {
main(String[]
04 System.out.println("Добро\n пожаловать\n в мир\n Java!");
05 } // окончание метода main
06 } /
//
/ о
око
конч
нчан
ание
ие кл
клас
асса
са He
Hell
llo2
o2
45
Управляю
Управл яющие
щие Esc
Escape
ape пос
послед
ледова
овател
тельно
ьност
сти:
и: \n-нов
\n-новая
ая стр
строка
ока,, \t-
перемещение на следующую позицию табуляции, \r-в начало текущей
строки, \\-обратный слеш, \» -двойные кавычки.
Задания к работе
1. Вывес
Вывести
ти на ко
консол
нсольь следу
следующий
ющий ннабор
абор с
симво
имволов:
лов:
а=1, c=a+1 m=2, n=3 решение уравнений
b=6, d=b*2-1 p=4, g=5 нахождение корней
2. Вывес
Вывести
ти на ко
консол
нсоль
ь следу
следующий
ющий н
набор
абор с
симво
имволов:
лов:
1
1 2 3
1 2 3 4 5
1 2 3 4 5 6 7
Лабораторная работа №3
Тем
ема а ра
рабоботы
ты.. Алго
Алгоритм
ритмизац
изация
ия и использов
использование
ание упра
управляю
вляющих
щих
структур в Java.
Цель работы. Использование циклов в приложении Java.
Соде
Со держ
ржананиеие ра
рабо ты.. Рассм
боты Рассмотре
отрены
ны прогр
программы
аммы,, в которых
которых ис-
пользуют
пользуются
ся опер
оператор
аторыы цикл
циклов
ов For, While для многократного выполне-
ния определенных операторов.
П р о г р а м м а 1 . Вычисление суммы и произведения последова-
тельности из 10 случайных чисел.
public class
01 public ForCycle {
class ForCycle
public static
02 public static void
main(String[] args) {
main(String[]
03 int tmp = 0;
int tmp
04 long tmp2 = 1;
long tmp2
05 System.out.print("Сумма\t\tПроизведение \n");
06 for(int
for( i=0;i<10;i++){
int i=0;i<10;i++){
07 tmp += (int
(int)Math.
)Math.round
(Math.random()*10);
(Math.
08
09 tmp2 = out
System. tmp2*tmp;
.print(tmp+"\t\t"+tmp2+"\n");
10 }
11 }
12 }
В строке 02 объявляем главный метод main(). В объявлении пере-
менной tmp типа int присваиваем ей начальное значение ( tmp=0, ини-
циализация переменной tmp в строке 03). В переменной tmp будет хра-
ниться сумма 10 членов последовательности из случайных чисел. Далее
объявляем
объя вляем перем
переменную
енную tmp2 типа long, в которой будем хранить зна-
чени
ченияя пр
прои
оизв
звед
еден
ения
ия чл
член
енов
ов по
посл
след
едов
оват
ател
ельн
ьнос
ости
ти (0
(04)
4).. В ци
цикл
кле
е FOR
(06-10)
(06-10) нахо
находитс
дитсяя сумм
сумма
а и прои
произведе
зведение
ние элементо
элементовв посл
последова
едователь
тельно-
но-
сти. Генерация случайного члена последовательности осуществляется с
46
щью
01 итерационной
public class
public формулы
Sqrt
class Sqrt { Герона.
static void
02 static sqrt(long a){
sqrt(long a){
03 double b=a;
double b=a;
04 int i=0;
int i=0;
05 while ((b*b>a)&&(i<200)){
while ((b*b>a)&&(i<200)){
06 b=(b+a/b)/2;
07 i++;
08 }
09 System.out.print(b);
10 }
public static
11 public void
static main(String[] args) {
main(String[]
12 sqrt(45);
13 }
14 }
Для вычисления квадратного корня числа используем итерацион-
1 a
ную
ную фо
форм
рмул
улу
у Ге
Геро
рона
на X n1= X n . Дл
Для
я эт
этог
ого
о ис
испо
поль
льзу
зуем
ем ци
цикл
кл
2 X n
while с предусловием ((b*b>a)&&(i<200)).
((b*b>a)&&(i<200))
В строке 02 объявляем новый метод sqrt() с одним параметром a
типа long. В объявлении переменной b типа double присваиваем ей на-
чальное значение (b=a, иници
инициализ
ализация
ация перем
переменной
енной b в строке 03). В
переменной b будем хранить промежуточные значения корня, вычисля-
емые в цикле по формуле Герона
Герона b=(b+a/b)/2. Далее объявляем пере-
менную i типа int и инициализируем ее значением 0. Данная перемен-
ная понадобится в качестве счетчика цикла.
Далее следует цикл While (05-08) с предусловием
((b*b>a)&&(i<200)). Данное условие состоит из двух условий: квадрат
b должен быть больше начального значения a и значение счетчика не
должно превышать 200, то есть всего производится не более 200 итера-
ций. В данном цикле производится вычисление очередного значения
Xn, кот
которо
орое
е хр
храни
анится
тся в пер
переме
еменно
нной
й b (06
(06).
). Переме
Переменна
нная
я b на каждом
шаге цикла изменяется, причем новое значение данной переменной за-
висит от предыдущего значения. В конце цикла увеличиваем счетчик i
на 1 в строке 07.
В кон
конце
це мет
метода
ода вы
вывод
водим
им пол
получе
ученно
нноее значе
значение
ние b в консо
консольно
льное
е
окно.
47
Задания к работе
1. С помощ
помощьюью цикл
циклаа выч
вычислит
ислите
е значе
значение
ние выр
выражен ия 2 .
ажения n
2. Сост
Составьт
авьте
е прог
программ
раммуу расчета факт
факториа
ориала
ла для произво
произвольно
льного
го
числа n<10.
3. Да
Даны
ны двдва
а дей
действ
ствите
ительн
льных
ых чис
числа.
ла. Необ
Необход
ходимо
имо получ
получит
ить
ь их
сумму, разность и произведение. Результат вывести на консоль.
4. Опре
Определит
делитьь время свобо
свободного
дного падения
падения мат
материал
ериального
ьного тел
тела
ас
заданной высоты h. Результат вывести в консоль.
5. Сос
Состав
тавьт
ьте
е про
прогр
грамм
аммуу для нахо
нахожде
ждения
ния длины кате
катета
та пря
прямо-
мо-
угольного треугольника (b), если известны длины гипотенузы (c) и
катета (a). Результат вывести на консоль.
Лабораторная работа №4
Тем
емаа ра
рабоботы
ты.. Алго
Алгоритм
ритмизац
изация
ия и использов
использование
ание упра
управляю
вляющих
щих
структур в Java.
Цель
Цел ь раб
работы
оты.. Использование элементов организации ветвления
в Java.
Соде
Со держ
ржан ание
ие ра
рабоботы
ты.. В дан
данной
ной работ
работе
е рас
рассма
сматр
трив
ивают
аются
ся пр
про-
о-
граммы, использующие операторы ветвления. Ветвление используется
для организации различных направлений вычислительного процесса.
П р о г р а м м а 1 . Вычисления числа Пи.
public class
01 public Pi {
class Pi
static double
02 static pi;
double
pi
04 static
static void leibnic(){
leibnic(){
05 for(double
for( i=1;i<100000000;i+=1){
double i=1;i<100000000;i+=1){
06 if (i%2==0){
if (i%2==
07 pi-=1/(2*i-1);
09 }else
else{{
10 pi+=1/(2*i-1);
12 }
13 }
14 pi*=4;
System.out.print("\nЧисло Пи, подсчитанное по методу
15
Лейбница равно: "+ pi);
pi
16 }
17 static void
static vallis(){
vallis(){
18 double pi1=1, pi2=1;
double pi1=1,
19 for(double
for( i=2;i<100000000;i+=2){
double i=2;i<100000000;i+=2){
48
20 pi1*=i/(i+1);
21 pi2*=i/(i-1);
22 }
23 pi=pi1*pi2*2;
System.out.print("\nЧисло Пи, подсчитанное по методу Валлиса
24
равно: "+
pi);
pi
25 }
public static
26 public void
static main(String[] args) {
main(String[]
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
public class
01 public Sol {
class Sol
public static
02 public void
static work(){
work(){
03 long x=0;
long x=0;
04 for(int
for( i=1;i<10;i++){
int i=1;i<10;i++){
05 for (int
for ( j=0;j<10;j++){
int j=0;j<10;j++){
06 for (int
for ( k=0;k<10;k++){
int k=0;k<10;k++){
07 x=i*100+j*10+k;
08 if (x==(Math.
if (x==(Math. (i,3)+Math.
(i,3)+Math.
pow
pow (j, 3) + Math.
(j,
pow
pow (k,3))){
(k,3))){
pow
pow
09 System.out.println(i+"^3+"+j+"^3+"+k+"^3+"+" = "+x);
49
10 }
11 }
12 }
13 }
14 }
public static
15 public void
static main(String[] args) {
main(String[]
16 work();
17 }
18 }
Данная программа находит такие цифры A, B и C, сумма кубов ко-
торых равна числу, составленному из этих цифр.
В программе имеются три цикла, вложенные друг в друга, каждый
цикл выполняется десять раз, таким образом тело цикла 07-09 выполня-
ется одну тысячу раз (10x10x10). Переменная x, составленная из кубов
счетчиков циклов, где первый счетчик играет роль сотен числа, второй
десятков, третий единиц. Если полученное x равно сумме кубов счетчи-
ков, то на консоль выводится информация о полученных цифрах и числе
x. На
Нахож
хожден
дение
ие куб
кубов
ов чис
чисел
ел осу
осущес
ществ
твляе
ляется
тся с пом
помощь
ощьюю метода
метода pow()
Лабораторная работа №5
Тем
емаа ра
рабоботы
ты.. Алго
Алгоритм
ритмизац
изация
ия и использов
использование
ание упра
управляю
вляющих
щих
структур в Java.
Цель работы. Организация ветвления в Java.
Содержание работы. Рассматривается программа, в которой ис-
пользует
пользуется
ся опер
оператор
атор множ
множестве
ественного
нного выбо
выбора,
ра, выпо
выполняю
лняющий
щий задач
задачу
у
множественного ветвления.
р а м м а 1 . Перевод чисел из десятичной системы счисле-
П р о г ра
ния в двоичную и шестнадцатеричную.
public class
01 public Trans {
class Trans
02
03
static
public
public String fromdectobin(int
static String
String res=""; fromdectobin(int x){
x){
50
04 short q = 0;
short q
05 while(x>0){
while(x>0){
06 q=(short
q=( )(x%2);
short)(x%2);
07 x/=2;
08 res=q+res;
09 }
10 return res;
return res;
11 }
public static
12 public String fromdectohex(float
static String fromdectohex(float x){
x){
13 String res="";
14 short q = 0;
short q
15 int c = 2;
int c
16 while(c>0){
while(c>0){
17 q=(short
q=( )(16*(x/16-Math.floor
short)(16*(x/16-Math. (x/16)));
(x/16)));
18 c=(int
c=( ) Math.floor
int) (x/16);
(x/16);
19 x=c;
20 if(q<10){
if(q<10){
21 res=q+res;
22 }else
else{{
23 switch(q){
switch(q){
24 case 10:
case 10:
25 res="A"+res;
26 break;
break;
27 case 11:
case 11:
28 res="B"+res;
29 break;
break;
30 case 12:
case 12:
31 res="C"+res;
32 break;
break;
33 case 13:
case 13:
34 res="D"+res;
35 break;
break;
36 case 14:
case 14:
37 res="E"+res;
38
39 break;
break;
case 15:
case 15:
40 res="F"+res;
41 break;
break;
42 }
43 }
44 }
45 return res;
return res;
46 }
public static
47 public void
static main(String[] args) {
main(String[]
48 System.out.println(fromdectobin(90367));
49 System.out.println(fromdectohex
(90367));
(90367));
50 }
51 }
51
52
Лабораторная работа №6
Тема работы. Массивы и строки.
Цель работы. Научиться использовать массивы и строки в Java.
Содержание
Содер жание работ
работы.
ы. Работа с массивами: поиск минимального
элемента и сортировка массива, а также простейшие приемы работы со
строками.
П р о г р а м м а 1 . Работа с массивами
01 public
public class Arrays {
class Arrays
02 public static
public static short minX(){
short minX(){
03 short x=0;
short x=0;
04 short[] array = new
short[] short
new [10];
short[10];
05 System.out.print("Исходный массив: ");
06 for (int
for ( i=0;i<10;i++){
int i=0;i<10;i++){
07 array[i]=(short
array[i]=( )Math.round
short)Math. (50*Math.random());
(50*Math.
08 System.out.print(array[i]+", ");
09 }
10 x=array[0];
11 for(int
for( i=1;i<10;i++){
int i=1;i<10;i++){
12 if(x>array[i]){
if(x>array[i]){
13 x=array[i];
14 }
15 }
16 return x;
return x;
17 }
18 public
public static void
static sort(){
sort(){
19 short temp;
short temp;
20 short[] array = new
short[] short
new [10];
short[10];
21 System.out.print("\nИсходный массив: ");
22 for (int
for ( i=0;i<10;i++){
int i=0;i<10;i++){
23 array[i]=(short
array[i]=( )Math.round
short)Math. (50*Math.random());
(50*Math.
24 System.out.print(array[i]+", ");
25 }
26 System.out.print("\nМассив отсортированный: ");
27 for(int
for( i=0;i<9;i++){
int i=0;i<9;i++){
28 for(int
for( j=9;j>i;j--){
int j=9;j>i;j--){
29 if(array[j-1]>array[j]){
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
public void
static main(String[] args) {
main(String[]
39 System.out.print("\nМинимальный элемент: "+minX
());
());
40 sort();
41 }
53
42 }
В данной программе используются два метода — minX() и sort().
В каждом из представленных методов описывается по одному массиву,
выделяя память на десять элементов для каждого массива (04, 20). За-
тем происходит заполнение массивов случайными числами с помощью
мето
ме тода
да Math.random() (06-0 (06-09,
9, 22-2
22-25).
5). Явным прео
преобраз
бразован
ованием
ием (short)
приводим
прив одим получен
полученные ные значени
значения я типа double к значени
значениям
ям тип
типа
а short
(7,23).
После
Пос ле тог
того,
о, ка
как
к мас
массив
сивыы гот
готовы
овы,, можно
можно произв
производи
одить
ть над ним
нимии
различные действия. Метод minX() ищет минимальный элемент в полу-
ченном массиве (11-15).
Второй метод производит сортировку полученного массива (27-34)
методом пузырька. Затем выводит значения его элементов (35).
В мет
метод одее main() вызываем minX() и sort(). Поскольку метод
minX() возвращает значение строкового типа, его можно использовать в
качестве аргумента конструкции System.out.print().
П р о г р а м м а 2 . Работа со строками
public class
01 public Strings {
class Strings
public static
02 public String compare(String s1, String s2){
static String
03 String s3="";
04 if (s1.equals(s2)){
if (s1.equals(s2)){
05 s3="Строки \""+s1+"\" и \""+s2+"\" равны";
06 } else {
else {
07 s3="Строки \""+s1+"\" и \""+s2+"\" не равны";
08 }
09 return s3;
return s3;
10 }
public static
11 public String add(String s1, String s2){
static String
System.out.print("\nРезультат сложения строк \""+s1+"\" и
12
"+"\""+s2+"\": ");
13 s1+=" "+s2;
return s1;
14 return s1;
15 }
public static
16 public void
static main(String[] args) {
main(String[]
17 System.out.println(compare("АБВГ","АБВ"));
18 System.out.print(compare("АБВ","АБВ"));
19 System.out.print(add
("Hello","World"));
("Hello","World"));
20 }
21 }
В приложении имеется два метода, которые сравнивают и склеи-
вают
вают две строки. Перв
Первый
ый метод compare() производи
производит
т срав
сравнение
нение двух
строк и выводит результат на консоль. Сравнение производится с помо-
щью функци
функциии equ
equals() в стро
als() строке
ке (04)
(04).. Если строки совпада
совпадают,
ют, данная
функция возвращает
возвращает значен
значение
ие true. Если строки равны (имеют одина-
54
ковый набо
ковый наборр симв
символов)
олов),, выво
выводитс
дится
я соот
соответс
ветствую
твующее
щее сооб
сообщение
щение (05)
(05),,
иначе
инач е сообщ
сообщение
ение (07). В конструкц
конструкции
ии присвоен
присвоенияия строке s3 (05, 07)
были использованы символы Escape-последоват
Escape-последовательности,
ельности, приведенные
в лабораторной работе №2.
Во втором методе происходит простое склеивание строк с помо-
щью операции « »(13).
+
Задания к работе
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
public Encapsulate {
class Encapsulate
02 public int
public field1 = 100;
int field1
03 protected int field2 = 150;
int field2
04 int field3 = 200;
int field3
05 private int
private field4 = 250;
int field4
06 public int
public getField4(){
int getField4(){
07 return this
return .field4;
this.field4;
55
08 }
public static
09 public void
static main(String[] args) {
main(String[]
10 new Class2().method1();
new Class2().method1();
11 }
12 }
class Class2 extends
13 class Class2 Encapsulate {
extends Encapsulate
public void
14 public method1(){
method1(){
15 System.out.println("Значение открытого public поля
- field1: "+this
"+this.field1);
.field1);
System.out.println("Значение защищенного protected
16
поля - field2: "+this
"+this.field2);
.field2);
System.out.println("Значение поля без модификатора
17
- field3: "+this
"+this.field3);
.field3);
System.out.println("Значение инкапсулированного закрытого
18
private поля - field4: "+getField4());
19 }
20 }
В приведенном примере демонстрируют
демонстрируютсяся два основных принципа
объектно-ориентированного программирования: инкапсуляция и насле-
дование. Создается класс Encapsulate (01-12), в котором объявляются и
56
Polymorph");
04 }
05 public static
public void
static main(String[] args) {
main(String[]
06 new NewClass1().method1();
new NewClass1().method1();
07 new NewClass2().method1();
new NewClass2().method1();
08 }
09 }
10 class NewClass1 extends
class NewClass1 Polymorph {
extends Polymorph
11 void method1(){
method1(){
12 System.out.println("Это был вызван метод класса потомка
13 NewClass1");
14 }
15 }
16 class NewClass2 extends
class NewClass2 Polymorph {
extends Polymorph
17 void method1(){
method1(){
System.out.println("Это был вызван метод класса потомка
18
NewClass2");
19 }
20 }
В приложении демонстрируется простейший пример полиморфиз-
ма.
ма. Им
Имее
еетс
тся
я тр
три
и кл
клас
асса
са Poly
Polymorph
morph,
, NewC
NewClass1
lass1,
, NewC lass2, причем
NewClass2
Polymorph является суперклассом по отношению к NewClass1,
причем
NewClass2. В кл
клас
ассе
се Polymorph описан
описан ме
метод
тод method1() (02), который
выводит сообщение в консоль. Классы NewCNewClass1
lass1,
, NewCl ass2 наследу-
NewClass2
ют этот метод и переопределяют его (override), осуществляя тем самым
перег
пер егруз
рузку
ку мет
метода
ода.. Да
Далее
лее в мет
методе
оде main() суперкласса создается два
объекта экземпляра классов.
В результате оба класса наследуют один и тот же метод, но выпол-
няется он у каждого из них по-разному или в разной форме. Таким об-
разом, вызывая один и тот же метод, с помощью разных объектов мож-
но получить разные по форме результаты, тогда более понятным стано-
57
Лабораторная работа №8
Тема работы. Работа с графическим интерфейсом пользователя.
Обработка событий.
Цель работы. Знакомство с элементами разработки графическо-
го инт
интерф
ерфейс
ейсаа пол
пользо
ьзоват
вателя
еля.. Соз
Создан
дание
ие пр
прило
иложен
жения
ия из нескол
нескольки
ьких х
файлов.
Содержани
Содер жание е рабо
работы.
ты. В данно
данной й рабо
работе
те расс
рассматр
матриваю
иваются
тся прог
програм-
рам-
мы, дем
демонс
онстри
трирую
рующие
щие осн
основы
овы ра работ
ботыы с гр
графи
афичес
ческим
ким инт
интерф
ерфейс
ейсомом
пользователя
пользовател я и обработкой событий компонентов ГИП.
В данной работе для создания программы графопостроителя нам
понадобится четыре класса, которые будут находиться в разных файлах.
Для того, чтобы в дальнейшем избежать путаницы, необходимо данные
файлы поместить в отдельную папку (или, в интерпретации платформы
Eclipse, в отдельный подпакет). Создайте новую папку, щелкнув правой
кнопкой мыши на имени проекта в представлении Package explorer, и в
раскр
раскрыв
ывшем
шемся ся мен
меню ю (ри
(рис.
с. 15)
15),, выб
выбрав
рав пун
пункт
кт «Fo
«Folde
lder».
r». Наз
Назови
овите
те ее
«MyGraph». Затем в данной папке аналогично создайте четыре новых
класса:
● «Graphic» — главный класс, в котором будет метод main().
● «Sinus» — класс графика синуса.
● «Cosinus» — класс графика косинуса.
● «X2» — класс графика параболы.
Помните, если классы описаны с любым из модификаторов види-
мости public, protected или private, то имена классов должны совпа-
дать с именами файлов, в которых хранятся данные классы.
После
Пос ле то
того,
го, как кла
классы
ссы буд
будут
ут соз
создан
даны,
ы, введи
введите
те пре
предло
дложен
женный
ный
ниже код программы.
П р о г р а м м а 1 . Пос
Постр
трое
оени
ние еггра
рафи
фико
ков
вээле
леме
мент
нтар
арны
ныххффун
ункц
кций
ий..
Класс Graphic
01 MyGraph;
package MyGraph;
package
02 import java.awt.*;
import java.awt.*;
03 import java.awt.event.*;
import java.awt.event.*;
04 import javax.swing.*;
import javax.swing.*;
05 public class Graphic extends
public class JFrame{
extends JFrame{
06 Graphic(String s){
07 super(s);
super(s);
08 setLayout(null
setLayout( );
null);
09 setSize(120,200);
10 setVisible(true
setVisible( );
true);
11 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
12 this.setResizable(false
this.setResizable( );
false);
13 Button sin = new Button("Sin");
new Button("Sin");
14 sin.setBounds(5, 20, 100, 25);
58
15 add(sin);
16 Button cos = new Button("Cos");
new Button("Cos");
17 cos.setBounds(5, 70, 100, 25);
18 add(cos);
19 Button x2 = new Button("Парабола");
new Button("Парабола");
20 x2.setBounds(5, 120, 100, 25);
21 add(x2);
22 sin.addActionListener(new ActionListener(){
23 public void
public actionPerformed(ActionEvent event){
actionPerformed(ActionEvent
24 new Sinus("Синус");
new Sinus("Синус");
25 }
26 });
27 cos.addActionListener(new ActionListener(){
28 public void
public actionPerformed(ActionEvent event){
actionPerformed(ActionEvent
29 new Cosinus("Косинус");
new Cosinus("Косинус");
30 }
31 });
32 x2.addActionListener(new ActionListener(){
33 public void
public actionPerformed(ActionEvent event){
actionPerformed(ActionEvent
34 new X2("Парабола");
new X2("Парабола");
}
35
36 });
37 }
38 public static
public void
static main(String[] args) {
main(String[]
39 new Graphic("Графопостроитель");
new Graphic("Графопостроитель");
40 }
41 }
Класс Sinus
01 MyGraph;
package MyGraph;
package
02 import java.awt.Color;
import java.awt.Color;
03 import java.awt.Graphics;
import java.awt.Graphics;
04 import javax.swing.JFrame;
import javax.swing.JFrame;
05 class Sinus extends
public class Sinus JFrame{
extends JFrame{
06 Sinus(String s){
07 super(s);
super(s);
08 setLayout(null
setLayout( );
null);
09 setSize(600,300);
10 setVisible(true
setVisible( );
true);
11 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
12 this.setResizable(false);
this.setResizable(false);
13 this.setLocation(100, 100);
this.setLocation(100,
14 }
15 public void
public paint(Graphics gr){
paint(Graphics
16 int y; int
int y; j=0; int
int j=0; k=0;
int k=0;
17 gr.setColor(Color.WHITE);
18 gr.fillRect(0, 0, 600, 300);
gr.setColor(Color.lightGray);
19
20 while(j<600){
while(j<600){
59
21 gr.drawLine(j, 0, j, 300);
22 j+=30;
23 }
24 while(k<300){
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
for( i=0;i<1000;i++){
double i=0;i<1000;i++){
38 y=(int
y=( )(80*Math.sin(Math.PI*i/180));
int)(80*Math.sin(Math.PI*i/180));
39 gr.drawLine((int
gr.drawLine(( )i-240, y+150, (int
int)i-240, (int)i-240,
)i-240, y+150);
40 }
gr.dispose();
41
42 }
43 }
Класс Cosinus
01 package
package MyGraph;
02 import java.awt.Color;
import java.awt.Color;
03 import java.awt.Graphics;
import java.awt.Graphics;
04 import javax.swing.JFrame;
import javax.swing.JFrame;
05 class Cosinus extends
public class Cosinus JFrame{
extends JFrame{
06 Cosinus(String s){
07 super(s);
super(s);
08 setLayout(null
setLayout( );
null);
09 setSize(600,300);
10 setVisible(true
setVisible( );
true);
11 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
12 this.setResizable(false
this.setResizable( );
false);
13 this.setLocation(200, 200);
this.setLocation(200,
14 }
15 public void
public paint(Graphics gr){
paint(Graphics
16 int y; int
int y; j=0; int
int j=0; k=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){
while(j<600){
21 gr.drawLine(j, 0, j, 300);
22 j+=30;
}
23
24 while(k<300){
while(k<300){
60
Класс X2
01 MyGraph;
package MyGraph;
package
02 import java.awt.Color;
import java.awt.Color;
03 import java.awt.Graphics;
import java.awt.Graphics;
04 import javax.swing.JFrame;
import javax.swing.JFrame;
05 class X2 extends
public class X2 JFrame{
extends JFrame{
06 X2(String s){
07 super(s);
super(s);
08 setLayout(null
setLayout( );
null);
09 setSize(600,300);
10 setVisible(true
setVisible( );
true);
11 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE
this.setDefaultCloseOperation( );
);
12 this.setResizable(false
this.setResizable( );
false);
13 this.setLocation(300, 300);
this.setLocation(300,
14 }
15 public void
public paint(Graphics gr){
paint(Graphics
16 int y; int
int y; j=0; int
int j=0; k=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){
while(j<600){
21 gr.drawLine(j, 0, j, 300);
22 j+=50;
23 }
24 while(k<300){
while(k<300){
25 gr.drawLine(0, k, 600, k);
26 k+=50;
}
27
28 gr.setColor(Color.BLACK );
);
61
62
05 ExtEventHandler(String s s)
){
06 super(s);
super(s);
07 setLayout(null
setLayout( );
null);
08 setSize(100,200);
09 setVisible(true
setVisible( );
true);
10 setResizable(false
setResizable( );
false);
11 setDefaultCloseOperation(EXIT_ON_CLOSE );
);
12 Button b1 = new Button("Первая кнопка");
new Button("Первая
13 b1.setBounds(2, 5, 96, 22);
14 add(b1);
15 Button b2 = new Button("Вторая кнопка");
new Button("Вторая
16 b2.setBounds(2, 100, 96, 22);
17 add(b2);
18 b1.addActionListener(new
b1.addActionListener( Handler(b1, b2));
new Handler(b1,
19 b2.addActionListener(new
b2.addActionListener( Handler(b1, b2));
new Handler(b1,
20 }
public static
21 public void
static main(String[] args) {
main(String[]
22 new ExtEventHandler("");
new ExtEventHandler("");
23 }
24 }
class Handler implements
class Handler ActionListener{
implements ActionListener{
25 private Button
26 private Button ba;
private Button bb;
27 private Button
28 String temp;
29 Handler(Button b1, Button b2){
30 this.ba=b1;
this.ba=b1;
31 this.bb=b2;
this.bb=b2;
32 }
public void
33 public actionPerformed(ActionEvent e) {
actionPerformed(ActionEvent
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
бой2.форму
Сумм
Сумматор
атор.
. Создайт
Создайте
200х150. е прилож
приложение,
На форме ение, кот
которое
разместите орое пред
представ
ставляет
три текстовыхляет
полясо-
и
одну кнопку с надписью «Расчет». При нажатии на кнопку значе-
ния, введенные в первые два текстовых поля, складываются и ре-
зультат записывается в третье поле.
Лабораторная работа №9
Тема работы. Апплеты.
Цель работы. Знако
Знакомств
мство
о с элеме
элементам
нтами
и раз
разработ
работки
ки Jav
Java-ап
a-аппле-
пле-
тов.
Содержание работы. Разработка апплетов.
П р о г р а м м а 1 . Про
рост
стей
ейши
ший
й апп
ппле
лет
т.
import java.awt.*;
01 import java.awt.*;
import java.applet.*;
02 import java.applet.*;
public class
03 public My_Applet extends
class My_Applet Applet{
extends Applet{
public void
04 public paint(Graphics g){
paint(Graphics
05 g.drawString("Hello, World!", 5, 30);
06 }
07 }
Приложение представляет собой простейший Java-апплет, в кото-
ром выводится строка с использованием ранее рассмотренного метода
(05) drawString().
Для запуска и просмотра апплетов в Eclipse используется специ-
альное программное средство AppletViewer.
П р о г р а м м а 2 . Ис
Испо
поль
льзо
зова
вани
ние
е эл
элем
емен
енто
тов
в граф
графич
ичес
еско
кого
го инт
интер
ер--
фейса пользователя в апплетах.
01 java.awt.*;
import java.awt.*;
import
02 import java.awt.event.ActionEvent;
import java.awt.event.ActionEvent;
03 import java.awt.event.ActionListener;
import java.awt.event.ActionListener;
04 import java.applet.*;
import java.applet.*;
05 public class
public My_Applet extends
class My_Applet Applet{
extends Applet{
06 public void
public init(){
init(){
07 setLayout(null
setLayout( );
null);
08 final TextField tf1 = new
final TextField TextField(15);
new TextField(15);
09 tf1.setBounds(1, 1, 100, 20);
10 add(tf1);
11 final TextField tf2 = new
final TextField TextField(15);
new TextField(15);
12 tf2.setBounds(1, 25, 100, 20);
13 add(tf2);
64
65
5
52
3 a
Bdud
t(tb
opnlu
bsm)
i;nus = new
66
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
b1.addActionListener(new ActionListene
ActionListener()
r() В строках
62 62-140 для
{
каждой из
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t кнопок
63
event) { производится
64 display.setText(display.getText()+"1"); обработка
65 } событий на
66 }); нажатие.
Для цифровых
b2.addActionListener(new
b2.addActionListener(new ActionListene
ActionListener()
r() кнопок —
67
{ добавление к
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t тексту поля
68 ввода
69 event)
displa{y.setText(display.getText()+"2"); соответствующей
цифры, для
70 } арифметических
71 }); операций —
b3.addActionListener(new
b3.addActionLis tener(new ActionListene
ActionListener()
r() установка
72 «флага» op
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t соответствующей
73 операции,
event) { сохранение в
74 display.setText(display.getText()+"3"); переменной temp
75 } введенного в
76 }); поле display
b4.addActionListener(new
b4.addActionLis tener(new ActionListene
ActionListener()
r() числа, путем
77 преобразования
{ строки в число
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t и очистка
78
event) { дисплея.
79 display.setText(display.getText()+"4");
80 }
81 });
b5.addActionListener(new
b5.addActionLis tener(new ActionListene
ActionListener()
r()
82
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
83
event) {
84 display.setText(display.getText()+"5");
85 }
86 });
b6.addActionListener(new
b6.addActionLis tener(new ActionListene
ActionListener()
r()
87
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
88 event) {
89 display.setText(display.getText()+"6");
67
90 }
91 });
b7.addActionListener(new
b7.addActionListener(new ActionListene
ActionListener()
r()
92
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
93
event) {
94 display.setText(display.getText()+"7");
95 }
96 });
b8.addActionListener(new
b8.addActionLis tener(new ActionListene
ActionListener()
r()
97
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
98
event) {
99 display.setText(display.getText()+"8");
100 }
101 });
b9.addActionListener(new
b9.addActionLis tener(new ActionListene
ActionListener()
r()
102
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
103
event) {
1
104
05 }di
disp
spla
lay
y.s
.set
etTe
Tex
xt(
t(di
disp
spl
lay
ay.g
.get
etT
Tex
ext(
t()+
)+"
"9"
9");
);
106 });
b0.addActionListener(new
b0.addActionListener(new ActionListene
ActionListener()
r()
107
{
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
108
event) {
109 di
disp
spla
lay
y.s
.set
etTe
Tex
xt(
t(di
disp
spl
lay
ay.g
.get
etT
Tex
ext(
t()+
)+"
"0"
0");
);
110 }
112 });
bplus.addActionListener(new
113
ActionListener()
ActionListene r() {
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
114
event) {
115 op = '+';
116 temp = D
Doouble.valueOf(display.getText());
117 display.setText("");
118 }
119 });
bminus.addActionListener(new
120
ActionListener()
ActionListene r() {
public void actionPerformed(ActionEven
actionPerformed(ActionEvent
t
121
event) {
122 op = '-';
123 temp = D
Doouble.valueOf(display.getText());
124 display.setText("");
125 }
126 });
127 bdiv.addActionListener(new
ActionListener()
ActionListene r() {
68
143 s witc'+':
case h(op){ на кнопку
Путем «=».
перебора
144 display.setText(String.valu
display.setTe xt(String.valueOf(temp+Doubl
eOf(temp+Double.v
e.v значений флага
op,
alueOf(display.getText())))
alueOf(displa y.getText())));
; break; определяется,
case '-': какая операция
145 display.setText(String.valueOf(temp- была выбрана и
Double.valueOf(display.getT
Double.valueO f(display.getText())));
ext()))); break; происходит
case '*': сложение
значения
146 display.setText(String.valu
display.setTe xt(String.valueOf(temp*Doubl
eOf(temp*Double.v
e.v переменной temp
alueOf(display.getText())))
alueOf(displa y.getText())));
; break; со значением,
case '/': введенным в
147 display.setText(String.valu
display.setTe xt(String.valueOf(temp/Doubl
eOf(temp/Double.v
e.v поле после
alueOf(display.getText())))
alueOf(displa y.getText())));
; break; нажатия одной
из кнопок
148 } арифметических
149 } операций.
150 });
151
152 } // Завершение конструктора Calc
153 public static void main(String[] args) { // Начало метода main()
154 new Calc("Calculator"); // Создание объекта Calc
155 } // Завершение метода main()
156 } // Завершение класса Calc
Задания к работе
1. Изм
Измени
ените
те дан
данную
ную прог
програ
рамму
мму так, чтоб
чтобыы чис
числа
ла мож
можно
но было
было
бы вводить в поле с клавиатуры, при этом перехватывая возмож-
ные исключения типа NumberFormatExcep
NumberFormatException.
tion.
69
2. Доба
Добавьте
вьте к дан
данному
ному кал
калькуля
ькулятору
тору дв
две
е кнопки — «Па
«Память
мять»»и
«Вызов из памяти», с помощью которых можно будет сохранить в
память числовое значение, находящееся в поле, и вызвать из па-
мяти ранее сохраненное значение.
70
Глоссарий
А
AWT — Abstract Windowing Toolkit — пакет (библиотека) базо-
вых компонентов графическо
графического
го интерфейса пользователя.
Абстракция — определение, характеризующее уровень обобщен-
ности описания того или иного объекта или процесса.
Абстрактный класс (abstract class) — класс, который содержит
один или более абстрактных методов, вследствие чего нельзя создавать
экземпляры данного класса. Абстрактные классы определены таким об-
разом, чтобы другие классы могли расширять и конкретизировать их,
реализуя абстрактные методы.
Абстрактный метод (abstract method) — метод, не имеющий
реализации.
Аргумент — элемент некоторых данных, указываемый при вызове
метода.
Array (массив) — см. массив.
Б
Байт-код
Байт- код (byte
(bytecode)
code) — маши
машинно-н
нно-незав
езависим
исимый
ый код, генер
генерируе
ируе--
мый Java-компилятором и исполняемый Java-интерпретат
Java-интерпретатором.
ором.
Байт (byte) — последовательность из восьми битов. В языке про-
граммирования
граммирова ния Java определен соответствующий тип byte.
В
Виртуальная машина JAVA
JAVA —
— программный "механизм выполне-
ния", который безопасно выполняет байт-коды файлов классов Java на
микропроцессоре
микропроцессор е (компьютера или другого электронного устройства).
Возврат (return) — оператор возвращения одного из типов зна-
чений методом класса.
Выражение — конструкция, состоящая из данных и операторов,
возвращающее
возвращаю щее некоторое значение в качестве результата.
Г
GUI — см. ГИП.
ГИП — графический интерфейс пользователя — средство органи-
зации
зации прог
программ
раммного
ного граф
графичес
ического
кого инте
интерфей
рфейса
са средс
средствам
твами
и библи
библиотек
отек
AWT и SWING.
71
Д
Динамическая переменная — переменная, наследуемая в по-
томках, становящаяся отдельным членом каждого экземпляра, не зави-
Е
Event — см. событие.
И
Инкапсуляция — локализация части данных в пределах класса.
Поскольку объекты инкапсулируют данные и реализацию, пользователь
пользователь
может рассматривать
ги. Переменные объект
и методы как черныйкласса
экземпляров ящик, могут
предоставляющий
добавляться,услу-
уда-
ляться или изменяться, но до тех пор, пока услуги, предоставляемые
объект
объ ектом,
ом, не изм
изменя
еняют
ются,
ся, нет нео
необхо
бходим
димост
ости
и пер
перепи
еписыв
сывать
ать код
код,, ис-
пользующий данный объект. См. также переменная экземпляра класса
и метод экземпляра класса.
Инкремент — опера
оператор,
тор, уменьшаю
уменьшающий
щий знач
значение
ение операнда на
единицу.
Inheritable — см. наследование.
Иерархия — классификация соотношений, в которой каждый эле-
мент,, кром
мент кромее верхн
верхнего
его (наз
(называе
ываемого
мого корне
корнем),
м), является
является специ
специализ
ализиро-
иро-
ванным видом элемента, расположенного над ним. Каждый элемент мо-
жет иметь один или несколько элементов, находящихся ниже него в
иерархии. В иерархии классов Java, образуемой при наследовании, кор-
нем является класс Object.
Имя — символьная или символьно-цифро
символьно-цифровая
вая идентификация како-
го-либо члена класса или самого класса, используемая в качестве вызо-
ва.
Идентификатор — имя объекта для компилятора, используемое
для связывания в процессе компиляции программы.
Интерфейс — понятие, используемое для определения набора ме-
тодов и постоянных значений (класса специального вида). Интерфейс в
дальнейше
даль нейшемм может реал
реализовы
изовывать
ваться
ся класс
классами,
ами, кото
которые
рые опре
определяю
деляют т
этот интерфейс с ключевым словом implements.
72
операндов выражения.
Исключительная ситуация — ситуация, возникающая во время
работы программы вследствие неудачного, или в случае невозможности
выпол
выполнен
нения
ия опе
операц
рации,
ии, или зап
запрог
рогра
рамми
ммиров
рованн
аннаяая с исп
исполь
ользов
зовани
анием
ем
оператора throw. Если в программе не предусмотрена реакция на воз-
невозможно.
никшую ситуацию, дальнейшее исполнение программы невозможно.
Источник события — объект, чаще компонент ГИП, являющийся
возбудителем некоторого события.
К
Класс —
— тип
тип в языке программирования Java, определяющий реа-
лизацию особого
класса, его вида объекта.
переменные и методы.Описание класса определяет экземпляр
Компонент — эле элемен
ментт биб
библио
лиотек
теки
и графи
графиче
ческо
ского
го инт
интерф
ерфейс
ейса
а
пользователя
пользовател я AWT или SWING.
Код — исходный текст программы или класса.
Комментарий — часть кода, предваряемая специальным симво-
лом (в JAVA это символ //), которую компилятор при интерпретации иг-
норирует.
Константа — член класса, который на протяжении всей програм-
мы не может быть изменен, в том числе и в потомках и экземплярах
класса. Задается модификатором final.
Конструктор — особый метод, имеющийся в каждом классе, осу-
ществляющий процесс создания экземпляров данного класса. В случае
отсутствия явного описания, используется конструктор суперкласса.
Контейнер — сущн
сущность
ость,, обесп
обеспечив
ечивающа
ающаяя упра
управлени
вление,
е, безо
безопас-
пас-
ность, разработку и сервисы выполнения компонент.
Л
Логический оператор — опе
опера
ратор
тор,, вып
выполн
олняю
яющий
щий дей
действ
ствие
ие с
операндами логического типа.
Логическая переменная/константа — члечлен
н кла
класса
сса,, имеющи
имеющийй
логический тип.
Логическое выражение — совокупность операторов и операн-
дов, возвращающая в результате логическое значение.
73
М
Массив (array) — совокупность элементов данных одного типа, в
которой позиция каждого элемента однозначно определена целым чис-
лом (индексом массива).
Модульность — один из принципов объектно-ориентированного
программирования,
программир ования, предполагающий, что каждый класс должен состав-
лять отдельный модуль, а члены класса, обращение к которым не пла-
нируется в дальнейшем, должны быть инкапсулированы
инкапсулированы..
Метод — фун
функци
кция,
я, опр
опреде
еделен
ленная
ная в кла
классе
ссе.. Пока
Пока не оговор
оговорено
ено
обратное, метод не является статическим
статическим.. Различают методы экземпля-
ров
ров и мет
методы
оды
переменные, кла
классо
ссов.
задаютсяв.модификатором
Мет
Методы
оды класс
классов
ов — лок
локаль
static. альные
ные мет
методы
оды,, ка
как
к и
Модификатор — элемент языка объектно-ориентированного про-
граммирования,
граммирования, задающий параметры декларируемых членов.
Н
Наследование — конце
концепция
пция класс
классов,
ов, автомат
автоматичес
ически
ки вклю
включаю-
чаю-
щих все переменные и методы, определенные в супертипе.
Name — см. имя.
О
Объект
ных программ. —Каждый
основной компоновочный
объект блок
программного объектно-ориентирован-
модуля состоит из данных
д анных
(переменные экземпляра) и функциональных возможностей (методы эк-
земпляра).
Объектно-ориентированное программирование — метод
проектир
прое ктирован
ования
ия прог
программ
раммного
ного обесп
обеспечени
ечения,
я, позво
позволяющ
ляющийий моделиро-
моделиро-
вать абстрактные или реальные объекты при помощи классов и объек-
тов.
Окно — элемент графического интерфейса пользователя, являю-
щийся
щийс я конт
контейнер
ейнером,
ом, имею
имеющий
щий возм
возможнос
ожность
ть помещ
помещать
ать в себя друг
другие
ие
компоненты.
Отрицание — логический процесс изменения состояния логиче-
ского выражения, переменной или константы на обратное.
74
Оператор — элем
элемент,
ент, испол
использую
ьзующийся
щийся в проц
процессе
ессе вычисления
вычисления
выражений.
Объявление — процесс присваивания начального значения пере-
менной или константе.
Обработка события — некоторый набор операторов, процедур и
ние.
Р
Рабочий стол — част
часть
ь граф
графичес
ического
кого инте
интерфей
рфейса
са поль
пользова
зователя
теля
оболочки
оболочки прог
программ
раммирова
ирования,
ния, отоб
отобража
ражающая
ющая сово
совокупно
купность
сть элеме
элементов
нтов
управления.
С
Символ — элемент алфавита, а также элемент данных текстового
типа.
Событие — элемент класса Event.
Ссылка — объект, являющийся сопоставлен
сопоставлением
ием некоторому иден-
тификатору некоторой области памяти, содержащей данные.
Строка — элемент данных, представляющий собой набор симво-
лов.
Суперкласс — класс, являющийся родителем одного или несколь-
ких подклассов. Класс Object является суперклассом для любого клас-
са.
Т
Тип — параметр данных, характеризующий их принадлежность к
определенному множеству.
75
У
Условие — некоторый блок программы, содержащий выражение,
переменную или константу, имеющий логический тип и являющийся
основой выполнения какого-либо блока задач. Используется, в основ-
ном, в циклах и операторе ветвления.
Ф
Фокус — опропреде
еделен
ление,
ие, хар
характ
актери
еризую
зующее
щее тек
текуще
ущее
е сос
состоя
тояние
ние
компонента. Компоненты, имеющие фокус, могут получать команды от
пользователя
пользователя с клавиатуры.
Ч
Член класса — метод, константа или переменная, описанная в
данном классе.
Э
Экземпляр — объект, созданный на основе некоторого класса.
76
Список литературы
Использованная:
1. Барнет Э.
Э. Eclipse
Eclipse IDE Карманный справочник: Пер. с англ. —
М.:КУДИЦ-ОБРАЗ,
М.:КУДИЦ -ОБРАЗ, 2006. — 160 с.
2. Хабибуллин И. Ш.
2. Хабибуллин Ш. Самоучитель
Самоучитель Java 2. — СПб.: БХВ-Петербург,
2007. — 720 с.
3. Шилдт Г. Полный справочник по Java. — М.: Вильямс, 2007. —
3. Шилдт
1040 с.
4. Ноутон П., Шилдт Г . Java 2. — CПб:, BНV-Санкт-Петербург,
2008. — 1072 с.
Электронные издания
5. Монахов В.В. Материалы курсов, разработанных в рамках про-
грамм
граммыы Sun Micr
Microsy
osyste
stems
ms Tea
Teachi
ching
ng Gr
Grant
antss в 200
2006 году — «Язык про-
6 году
граммирования
граммирова ния Java». СПбГУ, 2006.
6. Материалы интернет-сайт
интернет-сайта а http://ru.sun.com
Рекомендуемая:
7. Фишер Т. Java.
Т. Java. Карманный справочник. — М.: Вильямс, 2008. —
224 с.
8. Хемраджани А.
8. Хемраджани А. Гибкая разработка приложений на Java с помо-
щью Spring, Hibernate
Hibernate и Eclipse. — М.: Вильямс, 2008. — 352 с.
9. Хабибуллин И. Ш.
9. Хабибуллин Ш. Самоучитель
Самоучитель Java 2. — СПб.: БХВ-Петербург,
БХВ-Петербург,
2007. — 720 с.
10. Шилдт Г. Swi
10. Swing.
ng. Ру
Руков
ководс
одств
тво
о для нач
начина
инающи
ющих.х. — М.: Ви-
льямс, 2007. — 704 с.
11. Барнет Э.
11. Барнет Э. Eclipse
Eclipse IDE Карманный справочник: Пер. с англ. —
—
М.:КУДИЦ-ОБРАЗ,
М.:КУДИЦ -ОБРАЗ, 2006. — 160 с.
77