Цель курса:
•Овладеть объектно-ориентированным языком программирования Java Standard Edition 12 (Java SE12), научиться использовать интегрированную среду разработки и приобрести базовые навыки создания объектно-ориентированных приложений.
После окончания курса Вы будете уметь:
•разбираться в Java технологиях;
•работать с примитивными типами;
•использовать ветвление и циклы;
•создавать методы на Java;
•работать с массивами и со строками;
•разрабатывать классы на Java;
•использовать наследование и полиморфизм;
•разрабатывать абстрактные классы и интерфейсы;
•обрабатывать ошибки,
•возникающие в программе;
•работать с файловой системой;
•использовать новые возможности классов из пакета NIO 2;
•пользоваться коллекциями Java;
•использовать в программе параметризованные типы;
•применять знания о паттернах проектирования.
Модуль 1. Введение в Java технологии
•Особенности языка программирования Java.
•Описание Java технологий.
•Использование интегрированной среды разработки.
•Практика:
•Установка JDK/IDE, настройка параметров среды.
•Работа в командной строке.
Модуль 2. Введение в язык программирования Java
•Языковые лексемы Java.
•Введение в систему типов языка Java.
•Работа с примитивными типами и константами.
•Операции языка Java.
•Преобразование простых типов.
Модуль 3. Методы и операторы Java
•Создание и вызов методов.
•Перегрузка и методы с переменным числом аргументов.
•Операторы ветвления.
•Операторы циклов.
Модуль 4. Создание и использование массивов Java
•Одномерные массивы.
•Многомерные массивы.
•Работа с массивами и класс Arrays.
•Практика: Конвертор дня года в месяц и число.
Модуль 5. Работа со строками в Java
•Основные методы класса String.
•Сложение и преобразование строк.
•Классы динамических строк.
•Ввод данных с клавиатуры и класс Scanner.
•Регулярные выражения.
•Практика: Конвертор целых чисел в двоичную систему.
Модуль 6. Разработка классов на Java
•Обзор основных концепций ООП.
•Объявление класса.
•Члены класса и создание объектов класса.
•Модификаторы доступа.
•Модификаторы final & static.
•Использование пакетов, директив импорта и переменной среды CLASSPATH.
•Модули Java, как единица развёртывания и безопасности
•Практика: Разбор параметров командной строки.
Модуль 7. Наследование и полиморфизм
•Наследование как механизм повторного использования кода.
•Конструктор при наследовании.
•Преобразование типов и операция instanceof.
•Виртуальные методы и позднее связывание.
•Абстрактные классы и методы. Практика: Разбор параметров командной строки.
Часть 2. Наследование.
Модуль 8. Интерфейсы и аннотации
•Концепция интерфейсов.
•Объявление интерфейса.
•Реализация интерфейса.
•Статические методы, методы по умолчанию в интерфейсах и приватные методы.
•Использование и создание аннотаций. Практика: Сортировка массива объектов.
Модуль 9. Пакет java.lang
•Класс Object и переопределение его методов.
•Метаданные и рефлексия.
•Классы System и Math.
Модуль 10. Обработка ошибок в Java
•Концепция исключений в Java.
•Использование операторов try, catch и finally.
•Проверяемые и непроверяемые исключения.
•Создание своих классов исключений.
•Оператор try для освобождения ресурсов.
Модуль 11. Потоки данных в Java
•Обзор классов потоков.
•Работа с байтовыми потоками.
•Работа с потоками символов.
•Использование класса java.io.File.
•Сжатие файлов.
•Сериализация объектов в Java. Практика: Частотный анализ слов в тексте.
Модуль 12. Работа с файловой системой в NIO 2
•Использование интерфейса Path.
•Работа с атрибутами файлов.
•Основные возможности класса Files.
•Использование класса Files для обхода дерева каталогов.
•Мониторинг изменений в файловой системе.
Модуль 13. Пакет java.util
•Форматирование данных.
•Работа с датой и временем.
•Класс Locale и глобализация кода.
•Локализация и класс ResourceBundle.
•Генерация псевдослучайных чисел.
Модуль 14. Коллекции в Java
•Иерархия классов коллекций.
•Концепция параметризованных типов данных.
•Работа с параметризованным методов и интерфейсом.
•Обзор возможностей списков, множеств и словарей в Java.
Модуль 15. Вложенные классы в Java
•Внутренние классы.
•Вложенные классы.
•Анонимные классы.
•Перечисления в Java.
•Модуль 16. Лямбда-выражения
•Синтаксис лямбда-выражений.
•Ссылки на методы.
•Функциональные интерфейсы.
Модуль 17. Паттерны проектирования. Новшества последних версий Java и примеры паттернов ООП Нововведения Java.
•Обзор паттернов.
•Паттерн одиночка.
•Паттерн композиция.
•Паттерн наблюдатель.
•Практика: Реализация паттерна наблюдатель.