ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.07.2019

Просмотров: 308

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Федеральное агентство связи


Федеральное государственное бюджетное образовательное

учреждение высшего образования


Поволжский государственный университет

телекоммуникаций и информатики


Кафедра Информационных систем и технологий




Лабораторная работа №6

По дисциплине «Инструментальные средства информационных систем»

Тема: «Разработка консольных Java-приложений»















Руководитель доцент к. т. н.

__________________ Никитин К.А.













Самара 2018

  1. Цель работы

Изучение интерфейса ИСР IntelliJ IDEA. Получение практических навыков создания простого приложения на языке Java.


  1. Задание на выполнение работы

    1. Создать исполняемый файл программы, выводящий в двух строчках консольного окна фразу «HelloWord!» и Вашу фамилию.


public class Main {

public static void main(String[] args) {
System.
out.println("Hello World!");
System.
out.println ("Смолева и Степаненко");
}
}


Ключевое слово public (строка №2) называется "Модификатор Доступа" и используется для обращения к коду из других частей программы.

Класс System содержит набор полезных статических методов и полей системного уровня. Экземпляр этого класса не может быть создан или получен. Стандартный вывод, доступный через переменную System.out.

Класс PrintStream предназначен для печати всех примитивных типов данных и объектов String в удобочитаемом формате. Важными методами класса PrintStream являются print() и println( ), которые используются для печати всех различных типов.



    1. Создать исполняемый файл, создающий текстовый файл, содержащий фразы «HelloWord!» и Вашу фамилию. Файл должен быть создан в Вашей папке.


import java.io.FileNotFoundException; //Исключение, которое выдается при попытке получить доступ к файлу или каталогу, которых нет на диске.
import java.io.FileOutputStream; //Класс FileOutputStream предназначен для записи байтов в файл.
import java.io.PrintStream; //Класс PrintStream - класс, используемый для вывода на консоль.

public class Main {

public static void main(String[] args) {
try { //Для задания блока программного кода, который требуется защитить от исключений, используется ключевое слово try
PrintStream print=new PrintStream(new FileOutputStream("C:\\Users\\Stepandar\\Desktop\\ИСИС\\file1.txt"));
System.
setOut(print); //Класс System содержит три поля - in, out и err. Они используются для чтения данных из InputStream и записи данных в OutputStream
System.out.println("HelloWord");
System.
out.println("Смолева и Степаненко");
}
catch(FileNotFoundException e) //блок catch, задающий тип исключения, которое вы хотите обрабатывать.
{
e.printStackTrace();
//метод, определенный в классе Exception и используемый для печати информации об исключении, то есть, как оно произошло и какой строке.
}
}
}

К механизму обработки исключений в Java имеют отношение 5 клю­чевых слов: — trycatchthrowthrows и finally. Схема работы этого механизма следующая. Вы пытаетесь (try) выполнить блок кода, и если при этом возникает ошибка, система возбуждает (throw) исключение, ко­торое в зависимости от его типа вы можете перехватить (catch) или пере­дать умалчиваемому (finally) обработчику.

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





    1. Создать один исполняемый файл, который содержит задания 5.1 и 5.2.


import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class Main {

public static void main(String[] args) {
System.
out.println("Hello World!");
System.
out.println ("Смолева и Степаненко");
try {
PrintStream print=
new PrintStream(new FileOutputStream("C:\\Users\\Stepandar\\Desktop\\ИСИС\\file1.txt"));
System.
setOut(print);
System.
out.println("HelloWord");
System.
out.println("Смолева и Степаненко");
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
}
}



    1. Создать исполняемый файл, запрашивающий имя и возраст пользователя, выводящий ответное сообщение в консоль и сохраняющий введенные пользователем данные во внешний текстовый файл.


import java.io.FileNotFoundException; //предназначен для обработки исключений, которые выдаются при попытке получить доступ к файлу или каталогу, которого нет на диске. Исключение выдается при попытке получить доступ к файлу или каталогу, которого нет на диске.
import java.io.FileOutputStream; //предназначен для записи байтов в файл
import java.io.PrintStream; //предназначен для печати всех типов данных и String
import java.util.Scanner; //предназначен для считывания пользовательского ввода

public class Main {

public static void main(String[] args) {
Scanner Scan =
new Scanner (System.in); //создание объекта класса Scanner, связанного со стандартным потоком ввода
System.out.println("Как вас зовут? ");

String Name = Scan.nextLine();
//объявление переменной типа String и присвоение ей значения, считанного с клавиатуры
System.out.println("Сколько вам лет? ");
String Age = Scan.next();
System.
out.println("Здравствуйте, " +Name+". Ваш возраст " +Age+" лет");
try{
//создание объекта класса PrintStream с указанием файла, в который будет выводиться информация
PrintStream print = new PrintStream(new FileOutputStream("C:\\Users\\Stepandar\\Desktop\\ИСИС\\file1.txt"));
System.
setOut(print); //перенаправление потока вывода в файл
System.out.println("Здравствуйте, " +Name+ "\r"+ ". Ваш возраст " +Age+" лет");
}
//в скобках указан класс ожидаемой ошибки, в случае, если файл не найден
catch (FileNotFoundException e) {
e.printStackTrace();
//получить полную информацию по ошибке
}
}
}




  1. Контрольные вопросы

  1. Что такое Java? Перечислите области её применения.

Java – объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине вне зависимости от компьютерной архитектуры. Таким образом, обеспечивается одно из главных преимуществ языка Java – переносимость создаваемых на нем программ на компьютеры разных типов.

В настоящее время Java-технологии находят широкое применение в различных сферах.

        1. Разработка приложений (application). Язык Java используется для разработки прикладных программ, которые запускаются пользователем и имеют доступ ко всем ресурсам компьютера наравне с любыми другими программами.

        2. Разработка мидлетов (midlet). Язык Java используется для разработки специализированных программ, предназначенных для использования на мобильных устройствах.

        3. Разработка апплетов (applet). Язык Java используется для разработки специализированных программ, обычно небольшого размера, запускаемых браузером внутри web-документа для вывода динамического содержимого и/или интерактивного взаимодействия с пользователем.

        4. Разработка JSP-страниц (Java Server Pages). JSP-страницы представляют собой HTML-документы со вставками на языке Java, которые используются для анализа пользовательских запросов и динамического формирования web-документов на основе результатов обработки этих запросов.

        5. Разработка сервлетов (servlet). На языке Java разрабатываются специализированные программы-сервлеты, функционирующие в рамках веб-сервера и имеющие доступ к его ресурсам: файлам, базам данных и т.п.


  1. Назначение и основные функции IntelliJ IDEA.

IntelliJ IDEA интегрированная среда разработки языка Java, предназначенная для создания кроссплатформенных приложений, способная так же использовать другие языки программирования (для этого требуется добавить необходимый комплекс ПО).

Дизайн среды ориентирован на продуктивность работы программистов, позволяя им сконцентрироваться на разработке функциональности приложений, в то время как IntelliJ IDEA берёт на себя выполнение рутинных операций.

Возможности IntelliJ IDEA:

  • умное автодополнение, инструменты для анализа качества кода, удобная навигация, расширенные рефакторинги и форматирование для Java, Groovy, Scala, Clojure и Erlang;

  • профессиональный набор инструментов для разработки Android-приложений;

  • поддержка JavaFX 2.0 и интеграция с SceneBuilder;

  • дизайнер интерфейса для Swing;

  • интеграция с автоматизированными инструментами сборки и управления проектом, включая Maven, Gradle, Ant и другими.

  • инструменты для тестирования приложений с поддержкой JUnit, TestNG, Spock, ScalaTest и spec2;

  • интеграция с системами управления версиями, включая Git, Subversion, Mercurial и CSV.

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

  1. Структура программы в Java.

Программа на языке Java – это текстовый файл, состоящий из идентификаторов, ключевых слов, констант, разделителей, символов операций и комментариев.

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

  • пробел (\u0020);

  • табуляция (\u0009);

  • перевод формата (\u000C).

Символы разрыва строки также используются для форматирования текста, но они могут иметь значение и с точки зрения синтаксиса программы. Формальные правила использования разрывов строк в Java довольно сложны, но на практике достаточно помнить только то, что обычно рекомендуется начинать новый оператор с новой строки. Символами разрыва строки в Java считаются следующие символы Unicode:

  • перевод строки (\u000A);

  • возврат каретки (\u000D);

  • пара символов возврат каретки/перевод строки (считается одним разрывом строки).

Идентификаторы используются в Java в качестве имен переменных, классов и методов. Они могут начинаться с латинской буквы, символа "$" (знак доллара) или символа "_" (подчеркивание) и должны состоять из латинских букв, цифр и символов "$" и "_". Знак доллара рекомендуется использовать только в идентификаторах программ, которые автоматически генерируются другими программами. Идентификаторы не могут совпадать с зарезервированными словами. Два идентификатора считаются равными, если они текстуально совпадают; это означает, что Java проводит различие между строчными и прописными буквами.


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

  • константа null нулевого типа;

  • логические константы true (истина) и false (ложь) типа boolean;

  • символьные константы типа char, например, 'a' или '\t';

  • строковые константы класса String, например, "Привет всем!";

  • целые константы типов int и long, например, 111 или -2L;

  • плавающие константы типов float и double, например, 3.141592.

В качестве идентификаторов и имён констант в языке Java нельзя указывать следующие зарезервированные ключевые слова: abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while.

Комментарии в Java могут быть однострочными и многострочными. Однострочные комментарии начинаются с символов // и продолжаются до конца текущей строки. Многострочные комментарии заключаются в маркеры /* и */, например:

/* Это пример комментария,

содержащего несколько строк. */

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

Пример простой программы:

class Prog_1{

public static void main(String[] args)

{

System.out.println ("Программирование на Java.");

}

}

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

    • имя класса должно начинаться с буквы;

    • в имени класса могут присутствовать только буквы и цифры;

    • длина имени не ограничена;

    • в качестве имени класса нельзя использовать зарезервированные слова;

    • как правило, имя класса начинается с большой буквы. Если в имени класса используется несколько слов, то каждое слово пишется с большой буквы. Например: "FirstProgram".

    Файл, в котором находится исходный код программы, должен иметь имя, совпадающее с названием класса. Так, если главный класс программы имеет имя "Prog_1", то и файл с исходным кодом должен иметь имя "Prog_1". Кроме того, файл должен иметь расширение ".java". Здесь также учитывается регистр символов. Поэтому, если главный класс имеет имя "prog_1", то файл с программой имеет имя "prog_1.java", а если класс называется "PROG_1", то файл должен иметь имя "PROG_1.java".

    Фигурные скобки в программе используются для выделения отдельных блоков. Так, вся программа является отдельным боком, поэтому после названия программы class Prog_1 ставится открывающая фигурная скобка, а закрывающая скобка ставится в конце.

    Ключевое слово public (строка №2), используемое почти во всех Java-программах, называется "Модификатор Доступа" и используется для обращения к коду из других частей программы.


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

    1. Назначение Java пакетов.

    Javapackage (пакет Java) – механизм, позволяющий организовать Java-классы в пространстве имен.

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

    1. Перечислите основные классы Java.

    Класс java.io.File

    Для работы с файлами в приложениях Java могут быть использованы классы из пакета java.io, одним из которых является класс File. Класс File служит для хранения и обработки в качестве объектов каталогов и имен файлов. Этот класс не описывает способы работы с содержимым файла, но позволяет манипулировать такими свойствами файла, как права доступа, дата и время создания, путь в иерархии каталогов, создание, удаление, изменение имени файла и каталога и т.д.

    Класс System

    Класс System содержит набор полезных статических методов и полей системного уровня. Экземпляр этого класса не может быть создан или получен. Наиболее широко используемой возможностью, предоставляемой System, является стандартный вывод, доступный через переменную System.out.

    Класс PrintStream

    Класс PrintStream предназначен для печати всех примитивных типов данных и объектов String в удобочитаемом формате.

    Важными методами класса PrintStream являются print() и println( ), которые используются для печати всех различных типов. Различия между print() и println() в том, что последний метод добавляет символ новой строки, когда завершен вывод.

    (4.8) Класс String

    Класс String содержит основные методы для работы со строками:

    • concat(String s) или + – слияние строк;

    • equals(Object ob), equalsIgnoreCase(String s) – сравнение строк с учетом и без учета регистра;

    • compareTo(String s), compareToIgnoreCase (String s) – лексикографическое сравнение строк с учетом и без учета регистра;

    • contentEquals(StringBuffer ob) – сравнение строки и содержимого объекта типа StringBuffer;

    • charAt(int n) – извлечение из строки символа с указанным номером (нумерация с нуля);

    • substring(int n, int m) – извлечение из строки подстроки длиной m–n, начиная с позиции n;

    • length( ) – определение длины строки;

    • valueOf(объект) – преобразование примитивного объекта к строке;

    • toUpperCase( ) / toLowerCase( ) – преобразование всех символов вызывающей строки в верхний/нижний регистр;

    • replace(char с1, char с2) – замена в строке всех вхождений первого символа вторым символом;

    • getBytes(параметры), getChars(параметры) – извлечение символов строки в виде массива байт или символов.

    1. Как осуществляется запись строки во внешний текстовый файл?

    Пример программы с использованием классов для вывода данных во внешний текстовый файл: