Протягом п'яти днів під керівництвом досвідченого інструктора слухачі послідовно розглянуть синтаксис мови програмування Java, основи об'єктно-орієнтованого програмування з використанням Java, створення графічного інтерфейсу користувача за допомогою Swing API, механізми обробки винятків, організації введення та виведення, роботу з потоками, а також створення мережних додатків. Кожен модуль складається з обговорення теоретичних питань, яке завершується виконанням лабораторної роботи. Це дозволяє студентам пересвідчитися у переваги та недоліках технології. Для виконання лабораторних робіт курсу використовується NetBeans IDE, що дозволить студентам ознайомитися з цим чудовим середовищем розробки, навчитися документувати свої проекти, виконувати рефакторинг, налагодження та тестування коду, розробляти програми на платформі NetBeans. Також розглядатимуться питання використання шаблонів проектування, UML-проектування, кодогенераціі та антипатернів.
Після закінчення тренінгу студенти спробують скласти нескладний реальний тест, самостійно оцінити ступінь засвоєння матеріалу курсу та свою готовність до застосування отриманих знань на практиці .
Курс може розглядатися підготовчим до складання сертифікаційного тесту Java SE 7 Programmer I (1Z0-803).
Після закінчення курсу слухачі зможуть:
- створювати об'єктно-орієнтовані Java-додатка на основі принципів ООП, як-от інкапсуляція, успадкування та поліморфізм;
- компілювати в байт-код та запускати Java-додатки на виконання;
- використовувати типи даних та вирази;
- застосовувати механізми обробки винятків;
- документувати свої програми;
- виконувати рефакторинг наявного коду;
- налагоджувати, тестувати та профілювати свої проекти;
- проектувати додатки за допомогою UML-діаграм, виконувати кодогенерацію та зворотний інжиніринг;
- створювати графічні Java-додатки з використанням відповідних компонентів Swing API;
- реалізувати введення та виведення для роботи з файловою системою;
- створювати багатопотокові Java-програми;
- використовувати сокети для організації взаємодії в реальному часі за протоколами TCP/IP;
- розробляти додатки для платформи NetBeans.
Аудиторія
Курс призначений для програмістів, які вже мають певний досвід розробки з використанням інших мов та технологій програмування, зацікавлених у вивченні мови Java та, можливо, планують сертифікуватися на отримання статусу Oracle Certified Professional, Java Programmer.
Для ефективного навчання на курсі, слухачі повинні володіти такими знаннями і навичками:
- розуміти принципи об'єктно-орієнтованого програмування;
- вміти створювати та компілювати найпростіші C/C++/C#-програми;
- курс «NT-Java1. Введення в мову програмування Java».
- Вступ
- Огляд технології Java. Переваги та недоліки Java в порівнянні з конкуруючими технологіями
- Структура простого Java-додатка
- Компіляція та запуск Java-додатка. IDE NetBeans. Основні можливості середовища розробки
- Об'єктно-орієнтоване програмування. Документування програм
- Абстракція, інкапсуляція та пакетування
- Повторне використання Java-коду
- Поняття класу, атрибутів, методів, конструкторів, пакетів
- Використання модифікаторів доступу private та public
- Виклик методів об'єкта класу
- Використання онлайн-документації з Java API
- JavaDoc-коментарі. Генерація документації в NetBeans
- Ідентифікатори, ключові слова та типи
- Використання коментарів
- Правила формування ідентифікаторів
- Важливі слова мови Java
- Примітивні типи даних
- Числові та текстові типи
- Посилальні типи
- BigInteger та BigDecimal
- Оголошення змінних
- Створення об'єктів класу з використанням ключового слова new
- Ініціалізація членів класу
- Вирази, управління виконанням програми
- Instance та локальні змінні
- Ініціалізація змінних
- Основні оператори мови Java
- Приведення типів при присвоєнні значень змінним
- Логічні вирази, особливості їх синтаксису та застосування
- Використання основних алгоритмічних конструкцій if, switch, for, while, do, важливі слова break та continue
- Масиви
- Декларування масивів
- Ініціалізація елементів масиву
- Визначення кількості елементів масиву
- Багатовимірні та зазубрені масиви
- Операції над масивами, копіювання даних масиву в інший масив
- Проектування ієрархії класів. Знайомство з UML
- Основні принципи ООП: інкапсуляція, успадкування, поліморфізм
- Перевантаження та перевизначення методів
- Використання модифікаторів доступу protected та default (package-friendly)
- Використання конструкторів, створення декількох конструкторів класу
- Процес створення та ініціалізації об'єкта
- Знайомство з UML. Використання EasyUML для NetBeans
- Кодогенерація на основі діаграми класів. Зворотний інжиніринг
- Особливості створення класів
- Створення статичних змінних, методів та ініціалізаторів
- Final-класи, методи та змінні
- Створення та використання перерахувань
- Використання статичного імпорту
- Створення абстрактних класів та методів
- Створення та використання інтерфейсів
- Рефакторинг. Типові архітектурні рішення та антипатернів
- Поняття про рефакторінг
- Виконання рефакторінга в NetBeans
- Патерни та антипатерни
- Типові помилки розробників-початківців
- Обробка помилок та виключень. Налагодження, тестування та профілювання
- Обробка виняткових ситуацій
- Блок try… catch… finally
- Категорії винятків
- Загальні типи винятків
- Опис власних типів виключень
- Налагодження коду в середовищі NetBeans
- Поняття про тестування ПЗ. Unit-тести
- Написання та виконання jUnit-тестів в NetBeans
- Профілювання проекту в NetBeans
- Колекції та дженерики
- Поняття колекції, особливості поведінки та використання колекцій
- Інтерфейс Map
- Використання generic-колекцій
- Використання типів в generic-класах
- Рефакторинг наявного коду
- Перебір всіх елементів колекції
- Основи введення та виведення
- Робота з аргументами командного рядка та властивостями системи
- Використання класу Properties
- Серіалізація та десеріалізація об'єктів
- Робота з потоками введення та виведення
- Робота з консоллю та файлової системою
- Введення даних з консолі
- Виведення на консоль
- Файли та потоки введення та виведення
- Створення графічного інтерфейсу користувача
- Огляд JFC та Swing
- Структура Swing API, Swing-пакети
- Основні інтерфейсні елементи: контейнери, компоненти та менеджери розмітки
- Властивості контейнерів, компонентів та менеджерів розмітки
- Опис однопотокового Swing-додатка
- Побудова графічного інтерфейсу користувача за допомогою Swing
- Поняття про JavaFX
- Обробка подій від інтерфейсних елементів
- Типи подій та обробників
- Модель подій Java SE
- Поведінка графічного інтерфейсу, генерація подій
- Обробка подій
- Розпаралелювання обробки в Swing-додатку, використання класу SwingWorker
- Тонке налаштування інтерфейсу
- Створення меню та інших типових інтерфейсних елементів
- Налаштування властивостей компонентів, шрифтів, кольорів тощо
- Багатопотоковість в Java
- Поняття потоку
- Створення потоків
- Управління потоками та написання крос-платформного багатопотокового коду
- Проблеми при роботі декількох потоків із загальними даними
- Використання wait та notify для управління потоками
- Використання важливого слова synchronized для захисту даних
- Робота з мережею
- Створення мережних підключень
- Робота з TCP/IP
- Класи для реалізації сервера та клієнта ServerSocket та Socket
- Розробка додатків для платформи NetBeans
- Огляд платформи NetBeans
- Розробка модулів
- Розробка клієнтських додатків
- Приклади додатків на платформі NetBeans