
- •Основы программирования на языке java в среде eclipse
- •Ответственный за выпуск: в.И. Павловський, зав. Кафедрою информационных и компьютерных систем, канд. Техн. Наук, доцент.
- •2.1 Задание на лабораторную работу 19
- •7.3 Порядок выполнения работы 103
- •7.4 Содержимое отчета 103
- •7.5 Контрольные вопросы 104
- •Введение
- •1Лабораторная работа №1 Изучение среды разработки Eclipse
- •1.1 Задание на лабораторную работу
- •1.2 Краткие теоретические сведения
- •1.2.1Создание проекта
- •1.2.2Создание нового класса Java
- •1.3 Порядок выполнения работы
- •1.4 Содержимое отчета
- •Краткие теоретические сведения.
- •1.5 Контрольные вопросы
- •2Лабораторная работа №2 Основы языка Java
- •2.1 Задание на лабораторную работу
- •2.2 Краткие теоретические сведения
- •2.2.1Создание объектов
- •2.2.2Примитивные типы
- •2.2.3Числа высокой точности
- •2.2.4Уничтожение объектов
- •2.2.5Видимость имен
- •2.2.6Использование других компонентов
- •2.2.7Ключевое слово static
- •2.2.8Массивы
- •2.2.9Обработка ошибок с помощью исключений
- •2.3 Порядок выполнения работы
- •2.4 Содержимое отчета
- •2.5 Контрольные вопросы и задания
- •3Лабораторная работа №3 Объектная модель языка Java
- •3.1 Задание на лабораторную работу
- •3.2 Краткие теоретические сведения
- •3.3 Порядок выполнения работы
- •Краткие теоретические сведения.
- •4.2 Краткие теоретические сведения
- •4.2.1Классы дерева и узла
- •4.2.2Вопросы сокрытия реализации
- •4.2.3Пользовательский интерфейс
- •4.3 Порядок выполнения работы
- •4.4 Содержимое отчета
- •Краткие теоретические сведения.
- •4.5 Контрольные вопросы
- •5Лабораторная работа №5 Изучение основ объектно-ориентированного программирования на языке Java. Часть 2
- •5.1 Задание на лабораторную работу
- •5.2 Краткие теоретические сведения
- •5.2.1Классы деревьев и интерфейсы
- •5.2.2Рекурсивный проход по деревьям разных классов
- •5.2.3Расширение ранее созданных классов специфическими операциями пользователей
- •5.2.4Вопросы оптимизации кода
- •5.3 Порядок выполнения работы
- •5.4 Содержимое отчета
- •Краткие теоретические сведения.
- •5.5 Контрольные вопросы
- •6Лабораторная работа №6 Изучение коллекций Java и системы ввода-вывода
- •6.1 Задание на лабораторную работу
- •6.2 Краткие теоретические сведения
- •6.2.1Представление и реализация дерева на основе коллекций
- •В описании узла дерева необходимо создать и инициализировать объект класса список или набор сыновей, например
- •Количество сыновей узла дерева определяется следующим образом:
- •Элементу набора с индексом I выполняется путем получения массива из набора
- •6.2.2Представление и реализация дерева на основе ассоциативных массивов (карт отображений)
- •В описании узла дерева необходимо создать и инициализировать объект ассоциативный массив сыновей, например
- •Количество сыновей узла дерева определяется следующим образом:
- •6.2.3Доступ к коллекции или ассоциативному массиву через итератор
- •6.2.4Использование обобщений Java 5
- •В описании узла дерева необходимо создать и инициализировать коллекцию настраиваемый список, например
- •6.2.5Сериализация и десериализация дерева в файл
- •6.2.6Ввод и вывод в потоки со сжатием данных
- •6.3 Порядок выполнения работы
- •Краткие теоретические сведения.
- •7.2 Краткие теоретические сведения
- •7.2.1Многопоточность
- •7.2.2Процессы, потоки и приоритеты
- •7.2.3Приоритеты потоков в приложениях Java
- •7.2.4Реализация многопоточности в Java
- •7.2.5Функциональность класса Thread
- •7.2.6Реализация интерфейса Runnable
- •7.2.7Синхронизация потоков
- •7.2.8Синхронизация методов
- •7.2.9Блокировка потока
- •7.2.10Синхронизация доступа к совместно используемым данным.
- •7.2.11Избыточная синхронизация
- •7.2.12Вызов метода wait
- •7.2.13Документирование уровней безопасности
- •7.2.14Работа с графикой Графика 2d
- •Пространства координат
- •Режим рисования
- •Создание цвета
- •Основные методы рисования
- •Рисование фигур средствами Java2d
- •Класс BasicStroke
- •Класс GeneralPath
- •Классы GradientPaint и TexturePaint
- •7.3 Порядок выполнения работы
- •7.4 Содержимое отчета
- •Краткие теоретические сведения;
- •7.5 Контрольные вопросы
- •Многопоточность;
- •Рекомендованная литература
5.3 Порядок выполнения работы
Ознакомится с заданием на лабораторную работу.
Спроектировать структуру данных дерево и реализовать ее двумя способами.
Написать тестовую программу, демонстрирующую работоспособность всех методов двух реализаций деревьев. За основу взять GUI разработанный в лабораторной работе №4, добавив элемент выбора реализации дерева (например, Radiobutton). Тестовая программа должна оперировать с интерфейсным типом дерева. При обходе дерева, операции над узлами должны осуществляться с помощью безымянных классов.
Составить отчет о выполнении лабораторной работы.
5.4 Содержимое отчета
Название и тема лабораторной работы.
Цель лабораторной работы.
Краткие теоретические сведения.
Ход выполнения работы (реальный, а не переписанный из раздела 3.3)
Исходные тексты программ.
Диаграмма классов.
Выводы.
5.5 Контрольные вопросы
Назначение пакетов;
Спецификаторы доступа;
Понятие программного интерфейса в Java;
Абстрактные классы и методы;
Синтаксис наследования;
Особенности внутренних классов;
Назначение безымянных внутренних классов;
Инициализация объектов в Java;
Отложенная инициализация;
Внутренние безымянные классы;
Охарактеризуйте паттерн CallBack;
Охарактеризуйте паттерн Event;
Охарактеризуйте паттерн Command;
Охарактеризуйте паттерн Enum.
6Лабораторная работа №6 Изучение коллекций Java и системы ввода-вывода
Цель работы: Изучить основы работы с классами коллекций Java, а также системой ввода-вывода. Научиться применять встроенные механизмы сериализации Java.
6.1 Задание на лабораторную работу
В ходе выполнения лабораторной работы необходимо модифицировать исходный код, полученный в результате выполнения лабораторной работы №5, и использовать контейнеры стандартной библиотеки Java из пакета java.util.
Контейнерная библиотека Java решает вопрос хранения объектов, рассматривая его как совокупность двух различных концепций – коллекции, реализующие интерфейс Collection и таблицы (или карты отображений, ассоциативные массивы) реализующие интерфейс Map.
В лабораторной работе должны быть реализованы следующие способы представления и реализации совокупности дочерних элементов узла дерева:
Списков (интерфейс java.util.List). Все дочерние элементы в узле должны храниться в виде элементов списка.
Множеств (наборов) Java (интерфейс java.util.Set). Все дочерние элементы в узле должны храниться в виде элементов множества.
Ассоциативных массивов (карт отображений) Java (интерфейс java.util.Map). Все дочерние элементы в узле должны храниться в виде элементов ассоциативного массива, при этом каждому узлу должен быть сопоставлен определенный ключ.
Выполнение задания на лабораторную работу предполагает четыре этапа:
Представление и реализация дерева на основе коллекций и ассоциативных массивов;
Модернизация результатов 1-го этапа с использованием итераторов;
Модернизация результатов 1-го или 2-го этапов с использованием обобщений Java 5;
Дополнение результатов 1-го, 2-го или 3-го этапов средствами сериализации и архивирования.
6.2 Краткие теоретические сведения
6.2.1Представление и реализация дерева на основе коллекций
Коллекция это группа определенным образом организованных объектов. В Java различают интерфейсы коллекций и классы коллекций.
В состав интерфейсов коллекций входят собственно интерфейс Collection и его расширения – List, Set и SortedSet, которые предназначены соответственно для обработки списков, множеств и сортированных множеств. В дополнение к этим интерфейсам коллекции используют следующие интерфейсы: Comparator, Iterator и ListIterator.
Методы интерфейсов коллекций List, Set и SortedSet интуитивно понятны и могут быть предоставлены средствами визуальной среды разработки программ.
Классы коллекций реализуют методы интерфейсов коллекций. Стандартные классы коллекций Java можно разбить на две группы – абстрактные и конкретные классы коллекции.
Абстрактные классы коллекций обеспечивают частичную реализацию интерфейсов и используются для создания конкретных классов коллекций (AbstractCollection, AbstractList, AbstractSet).
Конкретные классы коллекций коллекции расширяют абстрактные классы и обеспечивают полную реализацию интерфейсов коллекций. Конкретные классы могут использоваться для непосредственного создания экземпляров этих классов.
К конкретным классам коллекций относятся классы: LinkedList (связный список), ArrayList (список - динамический массив ссылок), HashSet (множество в виде хеш-таблицы), TreeSet (множество в виде упорядоченного дерева) и LinkedHashSet (отличается от HashSet тем, что хранит элементы множества в порядке добавления).
Примечание. Следует обратить внимание, что с целью универсальности коллекции содержат ссылки на тип Object. Поэтому для получения из коллекции ссылки на конкретный объект ссылку типа Object приходится типизировать конкретным типом.
В рамках данной лабораторной работы следует использовать два класса коллекций, например, ArrayList для списка и LinkedHashSet для набора.
Общая структура использования классов коллекций следующая: