Програмування на Java (кн)

Тип: На вибір студента

Кафедра: інформаційних систем

Навчальний план

СеместрКредитиЗвітність
54Залік

Лекції

СеместрК-сть годинЛекторГрупа(и)
516доцент Бернакевич І. Є.ПМі-32, ПМі-33, ПМі-34, ПМі-35

Лабораторні

СеместрК-сть годинГрупаВикладач(і)
532ПМі-32доцент Бернакевич І. Є., доцент Козій І. Я.
ПМі-33доцент Бернакевич І. Є., доцент Козій І. Я.
ПМі-34доцент Бернакевич І. Є., доцент Козій І. Я.
ПМі-35доцент Бернакевич І. Є., доцент Козій І. Я.

Опис курсу

Синтаксис мови Java

Основні лексеми мови Java. Огляд типів даних. Оператори управління, переходу та ітераційні.

Об’єктно-орієнтований підхід до створення Java-програм

Оголошення класів. Специфікатори доступу. Використання ключових слів this та super. Конструктори класів та метод finalize(). Внутрішні класи (класи-члени, локальні класи, анонімні класи). Похідні класи. Інтерфейси та їх використання. Особливості створення пакетів.

Обробка виняткових ситуацій

Основні принципи обробки виняткових ситуацій. Типи виняткових ситуацій. Генерація та перехоплення винятків. Стек викликів. Вбудовані виняткові ситуації. Створення власних класів виняткових ситуацій.

Зберігання даних (колекції, алгоритми, узагальнення)

Структура колекцій. Інтерфейси колекцій. Класи колекцій. Доступ до елементів колекцій через ітератор. Робота з картами. Компаратори. Основні алгоритми колекцій. Узагальнення. Використання шаблонних аргументів. Обмежені шаблони. Узагальнені класи, інтерфейси, методи. Ієрархії узагальнених типів. Обмеження шаблонів.

Багатопоточне програмування та утиліти паралельного програмування

Модель потоку Java і його властивості. Створення потоку. Тіло потоку та його стан (життєвий цикл потоку). Пріоритети потоків. Потоки-демони. Синхронізація та взаємне блокування. Використання об’єктів синхронізації (семафорів, циклічних бар’єрів). Блокувальники.

Потоки введення-виведення

Стандартні системні потоки введення-виведення. Потоки java.io та ієрархія потокових класів. Класи InputStream/OutputStream та їх методи. Файловий ввід-вивід. Фільтровані потоки (буферизований та типизований ввід-вивід). Потоки виведення на друк. Вийняткові ситуації при роботі з потоками.

Робота з графікою

Graphics 2D Графічний контекст пристрою. Використання примітивної графіки. Робота зі шрифтами (клас java.awt.Font та java.awt.FontMetrics). Загальні принципи рисування з використанням Graphics 2D. Інтерфейс Shape. Рисування прозорих форм. Стилі рисування. Використання локальних шрифтів. Створення пера та його харатеритсики. Перетворення координат (зсув, масштабування, поворот).

Обробка подій Java

Класи подій. Слухачі подій, їх методи та інтерфейси. Елементи пакету AWT та породжувані ними події.

Програмування інтерфейсу користувача за допомогою пакету AWT

Стандартні компоненти та контейнери. Менеджери розміщення. Створення вікна застосування за допомогою Frame. Побудова меню. Діалогові вікна. Використання діалогових вікон для доступу до локальної файлової системи.

Програмування інтерфейсу користувача за допомогою пакету Swing

Особливості Swing-компонентів. Архітектура MVC. Типи контейнерів. Прості компоненти (мітки, кнопки, прапорці, випадаючі списки та ін.). Іконки, підказки, рамки. Лінійні регулятори. Текстові компоненти. Побудова меню. Створення панелі інструментів. Розширені компоненти Swing (списки, дерева, таблиці). Використання моделі компонентів. Візуалізація компонентів. Обробка подій розширених компонентів.

Основи JDВC

Архітектура JDBC. Класифікація драйверів JDBC. Конфігурація JDBC-драйвера. З’єднання з БД та налаштування його властивостей. URL бази даних. Передача інструкцій SQL. Попередньо відкомпільовані інструкції (PreparedStatement). Набори результатів (ResultSet) та їх обробка. Обробка множинних результатів запиту. Отримання відомостей про набори результатів (ResultSetMeteData). Відповідність між типами SQL та Java. Метадані бази даних (DatabaseMeteData) i та їх використання Управління помилками та попередженнями.

Розширені засоби JDВC

Набори результатів із розширеними засобами перегляду. Оновлювані набори даних. Пакетні зміни в базі даних. Розширені типи даних. Збережені процедури (CallableStatement), їх створення та виконання. Параметри IN та OUT. Іменування бази даних за допомогою JNDI. Розподілені транзакції. Управління транзакціями. Режими транзакцій та рівні ізоляції транзакцій.

Рекомендована література

Основна література

  1. Васильєв О. Програмування мовою Java. – Тернопіль: Навчальна книга – Богдан, 2020. – 696 c.
  2. Кеті Сьєрра, Берт Бейтс Head First. Java. Легкий для сприйняття довідник. – Харків: Фабула, 2022. – 720 c.
  3. Галкін О.В., Катеринич Л.О., Шкільняк О.С. Програмування на Java 8: Навчальний посібник для студентів факультету комп’ютерних наук та кібернетики. – К.: ЛОГОС, 2017. – 186 с.
  4. Кадомський К.К., Ніколюк П.К. Java. Теорія і практика. – Вінниця, 2018.- 198 c.
  5. Еванс Б., Кларк Д., Вербург М. The Well-Grounded Java Developer, Manning, 2023 – 704 с.
  6. Тарнавський Ю. А. Java-програмування: комп’ютерний практикум [Електронний ресурс]: навч. посіб. для студ. спеціальності 122 «Комп’ютерні науки». – Київ: КПІ ім. Ігоря Сікорського, 2021. – 95 с.

Допоміжна література

  1. Horstmann C. S. Core Java, Volume I: Fundamentals, 12th Edition, Addison-Wesley Professional, 2021.
  2. Horstmann C. S. Core Java, Vol. II-Advanced Features, 12th Edition, Oracle Press, 2022.
  3. Schildt H. Java: The Complete Reference, 12th Edition, McGraw-Hill, 2021.
  4. Deitel P., Deitel H. Java How to Program, Early Objects: 11th Edition, Pearson, 2017, 1296 p.
  5. Deitel P., Deitel H. Java How To Program, Late Objects: 11th Edition, Pearson, 2017, 1248 p.

Силабус:

Завантажити силабус