
- •Основы программирования на языке 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 Контрольные вопросы
- •Многопоточность;
- •Рекомендованная литература
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
Черниговский государственный технологический университет
Основы программирования на языке java в среде eclipse
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторному практикуму по дисциплине:
«Объектно – ориентированное программирование»
для студентов направления подготовки 6.050102 – “компьютерная инженерия”
Утверждено
на заседании кафедры
информационных и комп'ютерних систем
протокол №5 от 15.015.2010
Чернигов ЧГТУ 2010
Основи програмування на мові Java в середовищі Eclipse. Методичні вказівки до лабораторного практикуму з дисципліни «Об’єктно-орієнтоване програмування» для студентів напряму підготовки 6.050201 – „Комп'ютерна інженерія”. /Укл.: А.Л. Зінченко, В.І. Павловський, П.Г. Бивойно - Чернігів: ЧДТУ, 2010. - 102 с. рос. мовою.
Составители: А. Л Зинченко, асcистент
В.И. Павловский, канд.техн. наук, доцент
П.Г. Бивойно, канд. техн. наук, доцент.
Ответственный за выпуск: в.И. Павловський, зав. Кафедрою информационных и компьютерных систем, канд. Техн. Наук, доцент.
Рецензент: С.А. Нестеренко, канд. техн. наук, доцент кафедры информационных и компьютерных систем.
СОДЕРЖАНИЕ
Введение 6
1 ЛАБОРАТОРНАЯ РАБОТА №1 Изучение среды разработки Eclipse 7
1.1 Задание на лабораторную работу 7
1.2 Краткие теоретические сведения 7
1.2.1 Создание проекта 10
1.2.2 Создание нового класса Java 12
1.3 Порядок выполнения работы 18
1.4 Содержимое отчета 18
1.5 Контрольные вопросы 18
2 ЛАБОРАТОРНАЯ РАБОТА №2 Основы языка Java 19
2.1 Задание на лабораторную работу 19
2.2 Краткие теоретические сведения 19
2.2.1 Создание объектов 19
2.2.2 Примитивные типы 19
2.2.3 Числа высокой точности 20
2.2.4 Уничтожение объектов 21
2.2.5 Видимость имен 22
2.2.6 Использование других компонентов 22
2.2.7 Ключевое слово static 23
2.2.8 Массивы 24
2.2.9 Обработка ошибок с помощью исключений 26
2.3 Порядок выполнения работы 28
2.4 Содержимое отчета 29
2.5 Контрольные вопросы и задания 29
3 ЛАБОРАТОРНАЯ РАБОТА №3 Объектная модель языка Java 30
3.1 Задание на лабораторную работу 30
3.2 Краткие теоретические сведения 30
3.3 Порядок выполнения работы 35
3.4 Содержимое отчета 35
3.5 Контрольные вопросы 36
4 ЛАБОРАТОРНАЯ РАБОТА №4 Изучение основ объектно-ориентированного программирования на языке Java. Часть 1 37
4.1 Задание на лабораторную работу 37
4.2 Краткие теоретические сведения 38
4.2.1 Классы дерева и узла 38
4.2.2 Вопросы сокрытия реализации 39
4.2.3 Пользовательский интерфейс 42
4.3 Порядок выполнения работы 49
4.4 Содержимое отчета 50
4.5 Контрольные вопросы 50
5 ЛАБОРАТОРНАЯ РАБОТА №5 Изучение основ объектно-ориентированного программирования на языке Java. Часть 2 51
5.1 Задание на лабораторную работу 51
5.2 Краткие теоретические сведения 51
5.2.1 Классы деревьев и интерфейсы 51
5.2.2 Рекурсивный проход по деревьям разных классов 54
5.2.3 Расширение ранее созданных классов специфическими операциями пользователей 55
5.2.4 Вопросы оптимизации кода 59
5.3 Порядок выполнения работы 61
5.4 Содержимое отчета 61
5.5 Контрольные вопросы 62
6 ЛАБОРАТОРНАЯ РАБОТА №6 Изучение коллекций Java и системы ввода-вывода 63
6.1 Задание на лабораторную работу 63
6.2 Краткие теоретические сведения 63
6.2.1 Представление и реализация дерева на основе коллекций 63
6.2.2 Представление и реализация дерева на основе ассоциативных массивов (карт отображений) 65
6.2.3 Доступ к коллекции или ассоциативному массиву через итератор 68
6.2.4 Использование обобщений Java 5 69
6.2.5 Сериализация и десериализация дерева в файл 70
6.2.6 Ввод и вывод в потоки со сжатием данных 72
6.3 Порядок выполнения работы 73
6.4 Содержимое отчета 73
6.5 Контрольные вопросы 73
7 ЛАБОРАТОРНАЯ РАБОТА №7 Изучение многопоточности и работы с графикой 75
7.1 Задание на лабораторную работу 75
7.2 Краткие теоретические сведения 76
7.2.1 Многопоточность 76
7.2.2 Процессы, потоки и приоритеты 76
7.2.3 Приоритеты потоков в приложениях Java 77
7.2.4 Реализация многопоточности в Java 78
7.2.5 Функциональность класса Thread 78
7.2.6 Реализация интерфейса Runnable 81
public class MultiTask extends Applet implements Runnable{ 82
Thread m_MultiTask = null; 82
//другие поля . . . 82
public void run() 82
{ 82
Thread thisThread = Thread.currentThread(); 82
while (m_MultiTask == thisThread) { 82
try { 82
thisThread.sleep(interval); 82
} 82
catch (InterruptedException e){ } 82
82
//код выполнения в отдельном потоке. . . 82
//..repaint(); 82
} 82
} 82
public void start() 82
{ 82
if (m_MultiTask == null) 82
{ 82
m_MultiTask = new Thread(this); 82
m_MultiTask.start(); 82
} 82
} 82
public void stop() 82
{ 82
if (m_MultiTask != null) 82
{ 82
//m_MultiTask.stop(); 82
m_MultiTask = null; 82
} 82
} 82
m_MultiTask = new Thread(this); 83
m_MultiTask.start(); 83
jButton.addActionListener(new java.awt.event.ActionListener() { 84
public void actionPerformed(java.awt.event.ActionEvent e) { 84
SwingUtilities.invokeLater(new Runnable(){ 84
public void run() { 84
System.out.println("Hello from SwingUtilities"); 84
} 84
}); 84
} 84
}); 84
7.2.7 Синхронизация потоков 84
7.2.8 Синхронизация методов 84
public synchronized void decrement(){ 85
//тело метода 85
7.2.9 Блокировка потока 85
7.2.10 Синхронизация доступа к совместно используемым данным. 85
7.2.11 Избыточная синхронизация 89
7.2.12 Вызов метода wait 91
7.2.13 Документирование уровней безопасности 92
7.2.14 Работа с графикой 93