Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ООП_2010.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.81 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

Черниговский государственный технологический университет

Основы программирования на языке 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