Похожие презентации:
Разработка прикладных программ на Java (тема 1.2)
1.
РАЗРАБОТКАПРИКЛАДНЫХ
ПРОГРАММ НА JAVA
Тема 1.2 Первый проект
2.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТПравильно и красиво отобразить информацию на экране — это правило хорошего тона при
создании пользовательского интерфейса.
В этом уроке ты научишься:
1. выводить информацию в текстовую консоль;
2. использовать управляющие последовательности в текстовой строке;
3. работать с переменными различного типа;
4. выполнять простые арифметические операции;
5. запускать готовое приложение, написанное на языке Java.
2
3.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТДля отображения на экране символов предназначен
оператор print, который вызывается следующим образом:
System.out.print(<что выводить>);
Для вывода на экран некоторых специальных
символов и для управления курсором вывода в Java,
как и в С, используются управляющие
последовательности.
Оператор находится в классе out, который в свою очередь
находится в библиотеке System.
Управляющая
последовательность
Описание
Также часто используют модификацию оператора print —
println, который после вывода строки осуществляет
перевод курсора на следующую, т.е. аналогичен
оператору:
\'
Апостроф
\"
Кавычка
\\
Обратная косая черта
\r
Возврат каретки
\n
Перевод строки
\t
Горизонтальная
табуляция
\b
Возврат на символ
System.out.print(<что выводить> + "\n");
Здесь \n — это управляющая последовательность для
перевода строки.
3
4.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТСоздай новый проект с именем Print и создай в
нём класс с именем myClass.
Напиши программу приглашения в ресторан! Для
этого выведи в консоль бокал с газировкой и
трубочкой, нарисованный символами клавиатуры
(либо нарисуй что-то своё, например, можешь
скопировать выводимые строки из своей
программы-визитки, написанной на С в первом
модуле).
Приведённый код нужно записать в методе main.
Так как после вывода каждой строки необходим
переход на следующую, то в данном примере
использовался модифицированный оператор println.
System.out.println("
_____");
System.out.println("
/");
System.out.println("
|");
System.out.println("\\
|
/");
System.out.println(" \\~~~~~~~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~/");
System.out.println("
\\______/");
System.out.println("
||");
System.out.println("
||");
System.out.println("
||");
System.out.println(" ----------");
System.out.println(" Приглашаю в ресторан! ");
Обрати внимание, что некоторые символы
экранированы знаком \ , т.к. являются управляющими.
4
5.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТЗапусти программу на выполнение. В консоли
отобразится картинка:
Теперь ты знаешь, как отображать текстовую информацию
в консоли при помощи языка Java.
5
6.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТПовторяющиеся части текстовых блоков часто выносят в отдельные переменные, а в коде производят их вызов,
конкатенируя (объединяя) с другими частями текста.
Создай новый проект с именем Verse, а в нём создай класс с именем myClass.
Напиши программу, которая бы печатала небольшой стих. Причём стих должен быть заключён в рамку,
например, как этот:
String sCurve = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
String sLine = "-----------------------------------------------";
String sBorder = "|===|";
System.out.println(sCurve);
System.out.println(sBorder + "
Стих про хакера
" + sBorder);
System.out.println(sLine);
System.out.println(
sBorder + " Маленький хакер пароль подбирал, " + sBorder + "\n" +
sBorder + " Кабель задел, споткнулся, упал. " + sBorder + "\n" +
sBorder + " Клава разбита, компьютер дымится: " + sBorder + "\n" +
sBorder + " Больше не сможет наш хакер учиться." + sBorder);
System.out.println(sCurve);
Обрати внимание, что горизонтальные линии хранят отдельные переменные (sCurve и sLine). Также в
отдельную переменную sBorder вынесен текстовый блок, который обрамляет стих по краям.
6
7.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТЗапусти программу на выполнение. В результате в
консоли получишь следующий результат:
Примечание: чтобы запустить на выполнение нужный проект
(если в панели Package Explorer их несколько), достаточно
щёлкнуть мышью по названию проекта.
Теперь ты знаешь, как работать со строковыми переменными
и как конкатенировать строки.
7
8.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТЧастой задачей компьютерных программ является расчёт различных арифметических
выражений. В языке Java существует пять арифметических операторов.
Операция
Описание
+
Сложение
-
Вычитание
*
Умножение
/
Деление
%
Остаток от деления
Создай новый проект с именем Average и класс с именем myClass.
Напиши программу, которая рассчитывает среднее арифметическое четырёх чисел, например, таких:
234.31, 123.1, 234, 2.3E2. Проще всего это можно сделать непосредственно в самом операторе print:
System.out.print("Результат: " + (234.31 + 123.1 + 234 + 2.3E2) / 4);
8
9.
Тема 1. Инструменты разработчикаТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ
Запусти программу на выполнение.
В консоли получишь следующий результат:
Компилятор Java автоматически произведёт преобразование в строку результата математической операции (из типа
double в тип String):
(234.31 + 123.1 + 234 + 2.3E2) / 4
и сконкатенирует его со строкой Результат:.
9
10.
Тема 1. Инструменты разработчикаТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ
Но существуют особенности записи математических выражений в операции вывода.
Если в вычисляемом выражении используются знаки сложения или вычитания, то это выражение нужно заключать
в скобки. В противном случае компилятор просто преобразует числа в строки и состыкует их (в случае сложения)
либо выдаст синтаксическую ошибку (в случае вычитания).
Так, в следующем примере никакого сложения чисел не произойдёт:
System.out.print ("Результат: " + 234.31 + 123.1 + 234 + 2.3E23);
Консоль отобразит следующий результат:
Результат: 234.31123.12342.3E23
Для выполнения корректного сложения чисел необходимо заключить математическое выражение в скобки:
System.out.print ("Результат: " + (234.31 + 123.1 + 234 + 2.3E23) );
10
11.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ1.1 Общие понятия языка С
Запись математического выражения непосредственно в операторе print не наглядна. Особенно это чувствуется,
когда математическое выражение очень громоздкое и одно и то же значение используется в различных местах
выражения.
Гораздо наглядней аргументы выражения и результат расчёта выносить в отдельные переменные.
Измени предыдущий программный код на следующий:
// Аргументы выражения
double a1 = 234.31;
double a2 = 123.1;
int a3 = 234;
double a4 = 2.3E2;
// Вычисление выражения
double result = (a1 + a2 + a3 + a4) / 4;
// Отображение результата
System.out.print ("Результат: " + result);
Запись получилась объёмней, но зато намного наглядней, что гораздо важнее компактности (если конечно, это
сильно не влияет на производительность).
11
12.
Тема 1. Инструменты разработчикаТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ
Несмотря на то что переменная a3 объявлена как int, при
сложении с переменными типа double не возникает ошибки,
т.к. тип int является подмножеством типа double.
Целый тип
Вещественный тип
Название
Диапазон
Название
Диапазон
byte
short
int
long
-128 .. +127
-215 .. +215-1
-231 .. +231-1
-263 .. +263-1
float
double
3.4е-038 .. 3.4е+038
1.7е-308 .. 1.7е+308
12
13.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ1.1 Общие понятия языка С
Для числовых типов преобразование происходит автоматически, если тип изменяемой переменной может
«вместить» значение другого типа:
Запусти программу на выполнение. Ты получил тот же результат, что и в первый раз, но твоя
программа стала более наглядной.
13
14.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТТеперь ты знаешь, как рассчитывать простые арифметические
выражения и объявлять переменные простых типов.
Обрати внимание, что в коде использованы комментарии.
Их использование существенно упрощает чтение кода.
В дальнейшем всегда комментируй код.
Комментарии в исходном коде программы Java, как и в С,
помечаются специальными символами.
Существует два типа комментариев: однострочные и
многострочные.
Перед однострочными комментариями ставятся две косые черты //.
С этого момента и до конца строки можно писать всё что угодно.
Для записи многострочных комментариев, в начале комментария
ставятся символы /*, а в конце — */. В этом случае комментарий
может занимать какое угодно количество строк.
14
15.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТПрограммы, которые работают только в среде разработки Eclipse, не представляют практического интереса.
Их нельзя запустить на других компьютерах, где установлена только виртуальная машина Java.
Поэтому в этом шаге ты научишься делать свои программы автономными от среды разработки.
Исполняемые файлы, написанные на языке Java, имеют
расширение .jar (сокращение от англ. Java ARchive). Эти файлы
представляют собой обычный zip-архив, в котором содержатся
программа на языке Java с расширением .class и специальная
служебная информация (например, класс программы,
содержащий метод main, и ресурсы программы, такие как
картинки, звуковые файлы и т.д.). Такие файлы можно будет
запускать в любой операционной системе, которая поддерживает
виртуальную машину Java (т.е. в которой она установлена).
15
16.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТИтак, приступим к созданию исполняемого файла. Создадим jar-файл для проекта Print.
Выбери пункт главного меню File → Export.
В появившемся окне выбери элемент списка Runnable JAR file и нажми кнопку Next:
16
17.
Тема 1. Инструменты разработчикаТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ
В следующем окне выбери: в разделе Launch configuration —
проект и его класс, в котором присутствует точка входа
(в нашем случае будет myClass - Print); в разделе Export
destination — расположение и имя архивного файла (пусть это
будет Print.jar, расположенный в папке с твоими проектами).
Нажми копку Finish. После этого на диске по указанному пути
будет создан архивный файл.
Запусти файл. Для этого необходимо дать в консоли
(командной строке) специальную команду виртуальной
машине Java: java -jar <полный путь к файлу .jar>
17
18.
Тема 1. Инструменты разработчикаТЕМА 1.2. ПЕРВЫЙ ПРОЕКТ
В операционной системе Windows можно также создать пакетный файл в той же папке, что и файл с расширением .jar.
Пакетный файл (англ. batch file) — текстовый файл ОС Windows, содержащий последовательность команд,
предназначенных для исполнения интерпретатором. После запуска пакетного файла программа-интерпретатор читает его
строка за строкой и последовательно исполняет команды.
Основная область применения пакетных файлов —
автоматизация наиболее рутинных операций, которые
регулярно приходится совершать пользователю компьютера,
например: копирование, перемещение, переименование,
удаление файлов; работа с папками; архивация и т. п.
18
19.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТПриведём список наиболее интересных команд, которые
поддерживаются пакетными файлами:
title — название окна.
pause — задержка, отображает сообщение "Press any key to
continue…" (Нажмите любую клавишу для продолжения…).
color хх — задаёт цвет фона консоли и цвет текста в виде
двух шестнадцатеричных цифр. Каждая цифра может иметь
следующие значения:
0 — чёрный.
8 — серый.
1 — синий.
9 — светло-синий.
2 — зелёный.
A — светло-зелёный.
3 — голубой.
B — светло-голубой.
4 — красный.
C — светло-красный.
5 — лиловый.
D — светло-лиловый.
6 — жёлтый.
E — светло-жёлтый.
7 — белый.
F — ярко-белый.
19
20.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТРассмотрим создание пакетного файла подробнее.
Открой Блокнот и сохрани создавшийся текстовый файл с расширением .bat и именем Print (по
имени проекта) в папке, где находится файл Print.jar.
Заполни файл следующим содержимым и сохрани его:
Java -jar Print.jar
@pause
Примечание: команда @pause в пакетных файлах означает ожидание нажатия любой клавиши от
пользователя. Если эту строку убрать, то консольное окно после запуска программы сразу же
закроется.
Закрой Блокнот и запусти пакетный файл двойным щелчком. В результате ты получишь результат,
аналогичный предыдущему шагу, только в консоли ОС Windows уже не нужно будет набирать
никаких команд.
20
21.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТВозможно, русские символы у тебя в консоли
заменились на «кракозябры». Это уже
знакомая тебе ситуация, когда среда
разработки и консоль Windows имеют разные
кодировки русского языка:
Чтобы предусмотреть эту ситуацию, в самом начале программы
в методе main запиши следующий код:
try {
System.setOut(new java.io.PrintStream(System.out, true, "Cp866"));
} catch (UnsupportedEncodingException e) { }
Если не вдаваться в подробности, этот код просто принудительно
изменяет кодировку текста, выводимого в консоль, на Cp866, такая
кодировка и используется в консоли Windows.
Для работы этого кода используется класс
UnsupportedEncodingException, который нужно импортировать в
проект.
Причём, даже если у тебя на компьютере этого
не произошло, возможно, кодировка
превратится в «кракозябры» на другом
компьютере, на котором ты захочешь
запустить свое приложение.
Поэтому перед объявлением класса myClass вставь строчку:
import java.io.UnsupportedEncodingException;
21
22.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТЗапусти код в среде разработки Eclipse. Теперь ты
получишь «кракозябры» в консоли среды:
Из этого можно сделать следующие выводы.
1. В консольных программах желательно писать
текст только на английском языке.
2. При необходимости вывода кириллических
символов использовать код изменения
кодировки. Но при запуске программы в среде
Eclipse для отладки, строки изменения
кодировки комментировать (тогда ты увидишь
текст на русском языке).
Создай jar-файл заново и запусти пакетный файл. Зато
в консоли теперь всё точно сработает замечательно.
22
23.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТНаверняка у тебя уже возникала мысль, что в ОС Windows гораздо удобнее было бы просто запустить файл
со знакомым всем расширением .exe и не мучиться над созданием bat-файлов.
Для преобразования файлов с расширением .jar в исполняемые файлы с расширением .exe существует
множество программ. В этом шаге рассмотрим наиболее популярное, стабильное и бесплатное приложение,
которое называется Launch4j. Это приложение кроссплатформенно и доступно для ОС: Windows, MacOS,
Solaris и Linux.
Скачай приложение Launch4j с официального сайта по ссылке http://launch4j.sourceforge.net/
(после загрузки сайта щёлкни по разделу меню Download и выбери дистрибутив для своей операционной
системы).
Установи и запусти приложение Launch4j.
23
24.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТДля создания исполняемого exe-файла тебе понадобится заполнить несколько полей.
На вкладке Basic заполни имя выходного exeфайла (поле Output file:) и имя jar-файла
(поле Jar:):
На вкладке Header щёлкни по пункту Console, т.к.
у тебя консольное приложение (GUI — это
приложения с графическим интерфейсом):
На вкладке JRE заполни минимальную версию
виртуальной машины в разделе Min JRE version.
Начиная с этой версии, можно будет запускать
твою программу (укажи версию 1.8.0):
24
25.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТСоздай exe-файл, нажав на иконку в панели инструментов.
Попробуй запустить exe-файл.
Но что же произошло? Окно консоли мигнуло и тут же пропало. Ведь в самом коде программы нет задержки,
задержка делалась искусственно в пакетном файле.
Добавь в код программы задержку экрана, пока пользователь не нажмёт на любую клавишу.
Для такой задержки можно использовать следующий код:
try {
System.in.read();
} catch(Exception e) {}
Этот код мы разбирать не будем, но запомни, что он будет использоваться для задержки экрана в консольных
приложениях.
25
26.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТВ результате конечный код программы должен
выглядеть следующим образом:
// Изменение кодировки
try {
System.setOut(new java.io.PrintStream(System.out, true, "Cp866"));
} catch (UnsupportedEncodingException e) { }
// Рисование
System.out.println("
_____");
System.out.println("
/");
System.out.println("
|");
System.out.println("\\
|
/");
System.out.println(" \\~~~~~~~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~~~/");
System.out.println(" \\~~~~~~~~/");
System.out.println("
\\______/");
System.out.println("
||");
System.out.println("
||");
System.out.println("
||");
System.out.println(" ----------");
System.out.println(" Приглашаю в ресторан! ");
// Задержка экрана
try {
System.in.read();
} catch(Exception e) {}
Создай файлы .jar и .exe ещё раз. Теперь у
исполняемого файла есть задержка экрана, и мы
видим, что русские буквы отображаются правильно.
26
27.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТРисование символами
Скачай дополнительные файлы к заданию, в архиве
находится пять файлов, в которых находятся
рисунки, выполненные символами клавиатуры.
Выбери вариант рисунка и напиши программу,
которая выводит его в текстовой консоли.
Тебе необходимо cоздать jar-файл и исполняемый
exe-файл в папке проекта, а затем прикрепить к
ответу архив этой папки.
27
28.
ТЕМА 1.2. ПЕРВЫЙ ПРОЕКТВычисление математического выражения
Напиши программу, которая рассчитывает одно из
следующих выражений (аргументы выражений
задаются в отдельных переменных):
• Объём шара, зная его диаметр.
• Площадь треугольника, если известны длины его
сторон и диаметр описанной вокруг него
окружности.
Тебе необходимо cоздать jar-файл и исполняемый
exe-файл в папке проекта, а затем прикрепить к
ответу архив этой папки.
28
Программирование