
- •Основы программирования на языке 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 Контрольные вопросы
- •Многопоточность;
- •Рекомендованная литература
1.3 Порядок выполнения работы
Ознакомится с теоретическими сведениями.
На практике рассмотреть различные функциональные возможности среды Eclipse, представления, перспективы и системы меню.
Подробно изучить возможности редактирования кода, для этого следует воспользоваться экспериментами и системой помощи среды.
Ввести и отладить тестовое приложение.
Составить отчет о выполнении лабораторной работы.
1.4 Содержимое отчета
Название и тема лабораторной работы.
Цель лабораторной работы.
Краткие теоретические сведения.
Ход выполнения работы (реальный, а не переписанный из раздела 1.2)
Текст программ, используемых для выполнения лабораторной работы.
Выводы.
1.5 Контрольные вопросы
Назовите назначение представления JavaDoc;
Объясните понятия рабочая область, проект, представление, перспектива;
Как создать рабочий набор и поместить в него нужные элементы;
Назовите назначение автогенерации кода;
Назовите возможности среды Eclipse по автоматическому исправлению ошибок;
Как быстро закомментировать и раскомментировать блок кода;
Как перенести класс из одного пакета в другой без последующих ошибок компиляции;
Как изменить свойства компонента;
Назовите последовательность действий для запуска программы на выполнение и отладку;
Как создать новый интерфейс на основе класса.
2Лабораторная работа №2 Основы языка Java
Цель работы: Изучить основы разработки Java-программ. Изучить основные типы Java, создание и работа с массивами.
2.1 Задание на лабораторную работу
В ходе выполнения данной лабораторной работы необходимо ознакомиться с основными типами Java. Создать консольное приложение, которое рассчитывает значение функции по рекуррентной формуле, согласно варианту задания.
2.2 Краткие теоретические сведения
трактуется как объекты, идентификатор, которым используется для манипулирования объектом, на самом деле является “ссылкой” на объект.
Таким образом, если просто объявить ссылку, это не значит, что она связана с объектом. Создадим ссылку на объект класса String:
String s; |
Но здесь создается только ссылка, а не объект. Если послать сообщение для s в этом месте, то возникнет ошибка (времени выполнения), потому что s ни к чему не присоединено. Поэтому необходимо всегда инициализировать ссылку при ее создании:
String s = "asdf"; |
Здесь использована специальная особенность Java: строки могут быть инициализированы текстом в кавычках. Обычно необходимо использовать более общий тип инициализации для объектов.
2.2.1Создание объектов
В общем случае объекты создаются с помощью ключевого слова new.
String s = new String("asdf"); |
Здесь кроме создания нового объекта класса String указывается, каким значением инициализировать строку.
2.2.2Примитивные типы
Есть группа типов, имеющих особое обращение. Речь идет о так называемых “примитивных” типах, которые достаточно часто используются в программировании. Причина специального использования в том, что создание объектов с помощью new — особенно маленьких, простых переменных — не очень рационально, поскольку new помещает объекты в кучу. Для этих типов Java возвращается к подходу, принятому в C и C++. Так что вместо создания переменной с использованием new, “автоматические” переменные создаются не по ссылке. Переменная хранит значение, и оно помещается в стек, так как это более эффективно.
Java определяет размер каждого примитивного типа. Размеры не меняются при переходе от одной архитектуры машины к другой, как это сделано во многих языках. Этот размер инвариантен – это причина того, что программирование на Java так переносимо.
Таблица 2.1 – Примитивные типы в Java
Примитивный тип |
Размер |
Минимум |
Максимум |
Класс оболочки |
boolean |
— |
— |
— |
Boolean |
char |
16-бит |
Unicode 0 |
Unicode 216- 1 |
Character |
byte |
8-bit |
-128 |
+127 |
Byte |
short |
16-bit |
-215 |
+215 — 1 |
Short |
int |
32-bit |
-231 |
+231 — 1 |
Integer |
long |
64-bit |
-263 |
+263—1 |
Long |
float |
32-bit |
IEEE754 |
IEEE754 |
Float |
double |
64-bit |
IEEE754 |
IEEE754 |
Double |
void |
— |
— |
— |
Void |
Размер boolean типов точно не определен; только указано, что они способны принимать литерные значения true или false.
Примитивные типы данных также имеют классы “оболочки” для них. Это означает, что если необходимо создать не примитивный объект в куче для представления примитивного типа, необходимо использовать ассоциированную оболочку. Например:
char c = 'x'; Character C = new Character(c); |
Или также можно использовать:
Character C = new Character('x'); |
Примитивный тип всегда можно привести к типу класса-оболочки и наоборот.
Character C = new Character('x'); char c = C.charValue(); Integer I = new Integer(3); int i = I.intValue(); |