1. Стандартные средства разработки Java программ - polpoz.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
1. Стандартные средства разработки Java программ - страница №1/1

Семинарское занятие №1

1.Стандартные средства разработки Java программ

1.1.Язык программирования Java


Java - объектно-ориентированный язык программирования, разработанным фирмой Sun Microsystems.

Основные достоинства языка



  • Высокая переносимость программ.

  • Мощные стандартные библиотеки.

Основные недостатки

  • Повышенные требования к оборудованию.

Основные особенности

  • Полностью объектно-ориентированный язык.

  • Реализован с использованием интерпретации байт-кода.

Официальный адрес в сети интернет http://java.sun.com

1.2.Платформа Java


Технология Java - это объектно-ориентированная, платформо-независимая, многопоточная среда программирования.

Технология Java полностью реализует концепцию платформы.

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

Есть несколько версий платформ Java (1.0, 1.1, 2.0).

Последней версией является Java 2 Platform.

1.3.Виртуальная машина Java


Java Virtual Machine (виртуальная Java-машина) - это программа для интерпретации и выполнения байт-кода Java.

Исходный код на языке Java содержится в файлах с расширением java.

Программа для трансляции в байт-код называется javac.exe

Программа для выполнения байт-кода называется java.exe

Оттранслированная в байт-код программа имеет расширение class.

Для запуска программы нужно вызвать интерпретатор java.exe, указав в параметрах вызова, какую программу следует выполнить.


1.4.Java 2 SDK


Среда для выполнения Java-программ называется JRE (Java Runtime Environment).

JRE содержит реализацию виртуальной Java-машины для конкретной операционной системы.

Базовая среда разработки программ на Java называется Java 2 SDK (Java2™ Software Development Kit).

Среда разработки содержит набор стандартных библиотек и утилитных программ для разработчика. Также Java 2 SDK включает в себя среду выполнения java программм.


1.5.Установка Java 2 SDK


Пакет Java 2 SDK свободно доступен на официальном сайте в сети интернет по адресу http://java.sun.com/j2se

Установка SDK не требует инсталляции дополнительных компонентов.

В выбранном при инсталляции каталоге будет построена структура подкаталогов пакета Java 2 SDK.

1.6.Файловая структура Java 2 SDK


\ - головной каталог содержит лицензионное соглашение и краткое описание системы. Так же в нем находится архив исходного кода Java 2

bin\ - каталог инструментария разработчика. В нем находятся компилятор байт-кода javac.exe и интерпретатор java.exe, а также прочие утилиты

lib\ - набор стандартных библиотек Java для разработчиков

demo\ - каталог с примерами

include\ - каталог с файлами для взаимодействия с программами на C посредством технологии JNI (Java Native Interface)

jre\ - каталог, содержащий реализацию Java Runtime Environment

jre\bin\ - набор запускаемых файлов и DLL для Java-машины (JVM)

jre\lib\ - библиотеки и набор настроечных файлов для JRE


1.7.Документация по API


Документация по Java поставляется в виде html-файлов. Архив документации поставляется отдельно от JSDK. В выбранном при распаковке архива каталоге будет построена структура подкаталогов документации. Головной файл называется index.html
Документация по Java API (Application Programming Protocol) находится в подкаталоге /api

Это основная документация, описывающая стандартные библиотеки Java.

Библиотеки в Java строятся из пакетов. Пакет можно рассматривать как способ группировки связанных друг с другом классов.
Field Summary - краткий список полей класса

Constructor Summary – список конструкторов

Method Summary - список методов

1.8.Создание приложения HelloWorld


Код простейшего консольного приложения:
public class HelloWorld {

public static void main (String[] args) {

System.out.println("Hello, world");

}

}


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

Метод main(...) получает набор строк, содержащий аргументы программы.

Имя исходного файла должно совпадать с названием класса и иметь расширение java

1.9.Компилирование приложения HelloWorld


Команда для транслирования исходного кода в байт-код:

javac.exe HelloWorld.java


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

Если запустить программу javac.exe без параметров, то она покажет список допустимых параметров с кратким описанием каждого параметра. Подробная информация об аргументах программы javac.exe доступна в стандартной документации - ссылка “Tool Documentation” на главной странице.


1.10.Запуск программы HelloWorld


Команда для запуска байт-кода:

java.exe -classpath . HelloWorld


HelloWorld.class является файлом, содержащим откомпилированный байт-код класса.

При запуске программы задается полное имя класса (не файла) для выполнения, поэтому расширение .class не указывается.

Параметр classpath содержит список возможных путей до места хранения байт-кода. Пути разделяются с помощью символа ‘;’ в Windows и ‘:’ в UNIX системах (Linux, SunOS, etc.).

Если параметр classpath не задан, интерпретатор использует системную переменную среды CLASSPATH.

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

1.11.Создание архивов JAR


Файлы с расширением jar являются специальными архивами, содержащими байт-код.

Для создания jar-архивов используется программа jar.exe, входящая в состав SDK.

Пример команды для создания архива:

jar -cf hello.jar HelloWorld.class

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

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


1.12.Запуск программы из архива


Интерпретатор javac.exe использует параметр classpath для поиска байт-кода, указанного для исполнения.

Параметр classpath кроме путей до байт кода обычно содержит список библиотек в виде jar-архивов.

Пример выполнения консольного приложения, байт-код которого находится в архиве:

java -classpath hello.jar HelloWorld


2.Интегрированная среда разработки Java программ

2.1.Установка среды разработки Eclipse


Программа Eclipse является интегрированной среда разработки (Integrated Development Environment, сокращенно IDE).

Основным разработчиком программы является фирма IBM.

Программа свободно доступна по адресу http://www.eclipse.org

В выбранном при инсталляции каталоге будет построена структура подкаталогов необходимых для работы среды Eclipse.

Установка Eclipse не требует инсталляции дополнительных компонентов.

2.2.Запуск среды разработки Eclipse


Для запуска Eclipse требуется наличие установленной среды для выполнения Java-программ (JRE).

Запускаемый файл называется eclipse.exe и находится в установочном каталоге Eclipse.

При старте Eclipse можно установить аргументы запуска среды.

Основные аргументы следующие:

-data устанавливает путь до рабочего каталога (по умолчанию это директория workspace)

-vm определяет путь до JRE (по умолчанию берется путь из системных переменных)

-vmargs передает аргументы JVM (если аргументы не указаны, то JVM использует настройки по умолчанию)
Пример строки запуска среды Eclipse:

C:\Java\IDE\Eclipse\eclipse.exe -vmargs -Xmx256m –data C:\Projects


2.3.Обзор пунктов пользовательского меню


Пользовательское меню содержит команды, сгруппированные по функциональности:

File – команды для работы с файлами: создание, запись, печать файла и т.д.

Edit – команды текстового редактора: копирование, удаление, вставка текста и т.д.

Source – команды форматирования, документирования и генерации исходного кода

Refactor – команды для преобразования исходного кода

Navigate – команды для навигации в среде разработки

Search – команды для поиска в системе

Project – команды для сборки проекта и установки его свойств

Run – команды для запуска программ

Windows – содержит пункты для настройки различных свойств среды разработки

Help – команды вызова помощи.

2.4.Функция помощи в среде Eclipse


Eclipse содержит встроенную функцию помощи. Для вызова справки можно использовать клавишу F1. При нажатии этой клавиши вызывается контекстно-зависимая справка.

Пользовательское меню Help содержит полное содержимое доступной в Eclipse помощи.


2.5.Рабочее место (Workbench)


Среда Eclipse обеспечивает программиста автоматизированным рабочим местом для разработки Java приложений.

Основными компонентами рабочего места являются компонент редактирования (editor) и компоненты просмотра данных (view).



Настройки рабочего места среды Eclipse доступны в пункте меню Window > Preferences > Workbench.

2.6.Перспектива (Perspective)


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

Выбор перспектив доступен в пункте меню Window > Open Perspective

Выбор компонентов для просмотра данных доступен в пункте меню Window > Show View

2.7.Проект (Project)


Проект в Eclipse представляет собой именованный набор файлов.

Java-проект может содержать исходные файлы Java, файлы библиотек и ресурсов.

Имя проекта должно быть уникальным в среде Eclipse.

Новый проект создается через меню File > New > Project...

Созданный проект отображается в компоненте Package Explorer

2.8.Создание и настройка Java проекта


Новый Java-проект создается через меню File > New > Project > Java …

Основные свойства проекта:



  1. Каталог размещения проекта

  2. Набор директорий с исходным кодом и ресурсами

  3. Каталог для компиляции байт-кода

  4. Набор библиотек

Для изменения параметров проекта используется пункт меню Project > Properties > Java Build Path

2.9.Средства IDE для работы с файлами


Встроенный редактор Eclipse позволяет редактировать любые текстовые файлы.

Редактор поддерживает стандартные комбинации горячих клавиш для копирования и вставки текста. Команды редактирования доступны через меню Edit.


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

2.10.Создание класса


Новый класс создается через меню File > New > Class

Диалоговое окно создания файла позволяет определить основные параметры класса, такие как проект, пакет, имя класса и его видимость.

Имя класса является обязательным параметром.

Созданный класс отображается в компоненте Package Explorer.

Компонент Outline отображает методы и поля редактируемого класса.

Созданный класс можно переименовать с помощью меню Refactor > Rename


2.11.Практическое задание №1


Создать консольное приложение HelloWorld

2.12.Компилирование приложения


При получении команды на трансляцию кода, Eclipse выполняет сборку всего проекта. Существует возможность автоматической компиляции измененного кода при записи исходного файла. Эта возможность определяется установкой Workbench > Perform build automatically on resource modification.

Рекомендуется отключать автоматическую сборку проекта при изменении кода.


Команды для сборки проекта доступны в меню Project.

Build Project проверяет изменения и транслирует только модифицированный код.

Rebuild Project очищает директорию с откомпилированным кодом и транслирует весь код заново.
Файлы с откомпилированным байт-кодом создаются в директории, указанной в свойствах проекта. Все файлы с расширением, отличным от java, копируются в эту же директорию.

Директорию для компиляции проекта можно задать через меню Project > Properties > Java Build Path > Source > Default output folder


2.13.Запуск программы


Eclipse запускает выбранное Java-приложение, используя установленную в системе виртуальную Java-машину.

Посмотреть список доступных JVM и выбрать основную можно через меню

Window > Preferences > Java > Installed JREs
Java приложение запускается через меню Run > Run As > Java Application

Результат работы программы выводится в окно Console.


Eclipse ведет историю запусков приложений. Повторно приложение можно запустить через пункт меню Run > Run History

2.14.Конфигурация запуска программы


Для каждой запущенной программы создается конфигурация запуска.

Список конфигураций доступен через меню Run > Run ... > Configurations > Java Application

Основные параметры конфигурации: проект, полное имя исполняемого класса, рабочая директория, аргументы командной строки, аргументы JVM, JRE для выполнения, переменная classpath.

2.15.Обзор возможностей редактора


Редактор исходного Java кода предоставляет широкие возможности. Окно редактирования показывает исходный файл целиком. Существует возможность показа только одного, выбранного для редактирования метода, но такой возможностью пользоваться не рекомендуется.

Полный список команд для работы с исходным Java-кодом доступен через меню Edit и Source.


Основные горячие клавиши:

Подсказка синтаксиса Ctrl + Space

Запись текущего файла Ctrl + S

Поиск строки Ctrl + F

Форматирование Ctrl + Shift + F

Закрытие всех открытых файлов Ctrl + Shift + F4

Запись всех открытых файлов Ctrl + Shift + S

Вызов помощи F1

Описание выделенного класса F2

Закрытие текущего файла Ctrl + F4

Структура редактируемого класса Ctrl + F3

Переход на строку по номеру Ctrl + L


Полный список горячих клавиш доступен через меню Window > Preferences > Workbench > Keys

2.16.Практическое задание №2


Реализовать приложение Echo.

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


2.17.Запуск программы в режиме отладки


Любая исполняемая Java программа может быть запущена в режиме отладки.

Для этой цели используются следующие пункты меню:

Run > Debug As > Java Appliaction

Run > Debug History

Run > Debug...

Назначение этих пунктов аналогично пунктам запуска программы в обычном режиме.


Для работы в режиме отладки определена перспектива Debug.

В точке остановки (Break Point) вид автоматически переключается на перспективу Debug.

Точка остановки может быть добавлена или убрана через меню Run > Add/Remove Breakpoint

3.Пакеты Java

3.1.Объектно-ориентированная модель Java


Java является полностью объектно-ориентированным языком программирования.

Каждый объект создается, существует какое-то время, потом уничтожается.

Все объекты строго типизированы. Каждый объект имеет свой тип (класс).

Программа представляет собой набор классов. Не существует глобальных переменных или функций, не привязанных к классам (как в C/C++).

Все классы являются потомками класса java.lang.Object (даже если не указано явное наследование)

3.2.Пакеты в Java


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

Полное имя класса содержит имя пакета, в котором он находится.

Например, класс Random находится в пакете java.util. Это означает, что при обращении к классу Random необходимо указать полное имя класса как java.util.Random
Директива package указывает имя пакета, к которому принадлежит исходный класс.

Имена пакетов однозначно отображаются на файловую структуру.

Точки в имени пакета можно рассматривать как уровни вложенности каталогов.
Например, если некая директория входит в CLASSPATH, то для файлов внутри этой директории справедлива следующая таблица (символ ‘\’ разделяет поддиректории):

Файл внутри директории

Полное имя класса

Test.class

Test

ru\java\TestApplication.class

ru.java.TestApplication

nsu\test\Index.class

nsu.test.Index

nsu\test\seminar1\HelloWorld.class

nsu.task.seminar1.HelloWorld

nsu\test\seminar1\Test.class

nsu.task.seminar1.Test

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


3.3.Пространство имен в Java


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

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

Пример:

import java.util.Random;



import java.util.*;
Пакет java.lang подключается автоматически. Все его классы доступны без указания имени пакета в любой точке java программы.

3.4.Структуризация проекта посредством пакетов


Java-проект обычно содержит сотни и тысячи классов.

Пакеты предоставляют механизм разбиения множества классов проекта на логические модули. Законченные модули можно формировать в библиотеки путем сборки jar-архивов.


3.5.Средства IDE для работы с пакетами


Новый пакет создается через меню File > New > Package

Созданный пакет можно переименовать с помощью меню Refactor > Rename

Для переноса класса из одного пакета в другой поддерживается функция drug&drop.

3.6.Практическое задание №3


  1. Создать пакет oop и перенести в него программы HelloWorld и Echo. Откомпилировать проект и запустить эти программы на выполнение.

  2. Создать пакет oop.java и перенести в него программы HelloWorld и Echo. Откомпилировать проект и запустить эти программы на выполнение.

  3. Создать пакет oop.java.lesson1 и перенести в него программы HelloWorld и Echo. Откомпилировать проект и запустить эти программы на выполнение.

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

4.Алгоритмические средства языка Java

4.1.Базовые типы данных


Базовый тип

Машинное представление (в байтах)

Объектное представление

Диапазон значений

byte

1

Byte

-128..127

short

2

Short

-32768..32767

int

4

Integer

-2147483648..2147483647

long

8

Long

-9223372036854775808..

9223372036854775807



float

4

Float

1.4E-45.. 3.4028235E38

double

8

Double

4.9E-324.. 1.7976931348623157E308

char

2

Character

'\u0000' to '\uffff'

или в числовом представлении 0..65535



boolean

1

Boolean

true или false

Объектные представления для примитивных типов предоставляют набор методов и констант для работы с данными. Например, предоставляют доступ к статическим константам MIN_VALUE и MAX_VALUE, которые определяют минимальное и максимальное значение для данного типа.


4.2.Константы (литералы)


Арифметические константы задают значения для простых типов данных

10 - это 10 (десятичная система)

010 - это 8 (восьмеричная система)

0x10 - это 16 (шестнадцатеричная система)

1e3 - это десятичное представление числа 1000

9.99e-1- это десятичное представление числа 0.999

Для указания типа данных применяются суффиксы:

l (или L) - long, f (или F) - float, d (или D) - double.

Пример: 1, 1L, 1f, 1.0D – это единицы типа int, long, float и double
Логические литералы - это true (истина) и false (ложь)
Строковые константы записываются в двойных кавычках, например "это строка".

Для представления строки всегда используется объект String.

Длина строки не ограничена.
Символьные литералы записываются в апострофах, например 'a’, 'b', ‘c’.
Служебные символы в строковых и символьных переменных записываются с помощью знака \.

Например: \n - перевод строки, \t – табуляция


4.3.Переменные


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

Блок начинается открывающей фигурной скобкой '{' и заканчивается закрывающей фигурной скобкой '}'.


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

4.4.Операции


Операция присваивания: =

Арифметические операции: +, -, *, /, %

Операции сравнения: <, >, >=, <=, !=, ==

Операции инкремента и декремента: --, ++

Расширенные операции присваивания: +=, -=, *=, /=

Логические операции: !, &&, ||

Побитовые логические операции: &, |, ^, ~

Операции побитового сдвига: >>, <<, >>>

Операция приведения типов: (<тип >)

Условная операция: <условие> ? <выражение1> : < выражение2>;


4.5.Операторы


Оператор-выражение:

;

a = 0;



a += 1;
Условный оператор (if):

if ( a > b ) {

x = a;

} else {


x = b;

}
Оператор цикла по предусловию (while)

while ( more ) {

x /= 2;


more = (++i < 10);

}
Оператор цикла по постусловию (do while)

do {

x /= 2;


more = (++i < 10);

} while (more );


Оператор цикла с условием (for)

for (int i = 0; i < 10; i++) {

x /=2;

}
Оператор выбора (switch)



switch ( code ) {

case 1:


case 2:

System.out.println("1 или 2");

break;

case 3:


System.out.println("3");

break;


default:

System.out.println("не 1, и не 2, и не 3");

}

4.6.Практическое задание №3


Последовательно выполнить все задания из списка упражнений.

Исходные файлы должны быть размещены в пакете oop.java.lesson1


5.Упражнения

5.1.Приложение HelloMan


Написать консольное приложение для вывода на экран приветствия.

Программа должна запрашивать с консоли имя человека и запоминать его в переменной man. Затем, используя полученные данные, выводит на экран приветствие.


Примечание:

  1. Класс System обеспечивает доступ к потокам вывода на экран и ввода данных с консоли

  2. Для считывания строки с консоли можно использовать классы BufferedReader и InputStreamReader из пакета java.io

5.2.Приложение Exponentiation


Написать программу возведения числа в степень.

Входные данные (число и степень) должны запрашиваться с консоли. Результат возведения программа должна выводить на экран.


Примечание:

  1. Для преобразования строки в число можно воспользоваться функцией parseInt(...) класса Integer

5.3.Приложение QuadricEquation


Написать программу для решения квадратного уравнения.

Входные данные (коэффициенты уравнения) должны запрашиваться с консоли.

Найденные корни квадратного уравнения должны быть выведены на экран.
Квадратное уравнение записывается в виде: a*x2+b*x+c=0, a!=0.

Классическая формула для нахождения его корней:

x1=(-b-sqrt(b2-4ac))/(2a), x2=(-b+sqrt(b2-4ac))/(2a)
Примечание:


  1. Для извлечения квадратного корня можно воспользоваться классом java.lang.Math

5.4.Приложение Cat


Написать приложение для вывода на экран содержимого файла. Имя файла передается программе через массив параметров.
Примечание:

  1. Для описания объекта файл используется класс java.io.File

  2. Для последовательного чтения содержимого файла можно воспользоваться классами FileReader и BufferedReader из пакета java.io

5.5.Приложение Copy


Написать приложение для копирования файла. Имя исходного и конечного файла передается в приложение параметрами.
Примечание:

  1. Для последовательного чтения и записи можно воспользоваться классами FileInputStream и FileOutputStream.

  2. Для буферизации ввода/вывода можно использовать классы BufferedInputStream и BufferedOutputStream из пакета java.io

5.6.Приложение GuessNumber


Реализовать игру «угадай число».

В начале игры программа загадывает случайное число в пределах от 0 до 100. Задача игрока - отгадать это число с 8 попыток. После каждой попытки программа подсказывает больше загаданное число или меньше предполагаемого.


Примечание:

  1. Для генерации случайного числа можно использовать класс java.util.Random






izumzum.ru