Модуль 1. Введение в Kotlin (3 ак. ч.)
- Языковые лексемы
- Модули, пакеты, файлы и классы
- Настройка среды
- Константы, переменные и функции
- Строки, строковые шаблоны
- Система типов
- Допустимость null
- Совместимость с Java
- Лабораторная работа: работа со строковыми литералами и шаблонами строк
Модуль 2. Функции, методы и операторы (3 ак. ч.)
- Создание и вызов функций
- Именованные аргументы, значения по умолчанию
- Операторы ветвления
- when
- Автоматическое приведение типов
- Операторы циклов
- Диапазоны
- Пары и триплеты
- Деструктурирование и мультидекларации
- Встраивание функций
- Лабораторная работа: циклы и ветвление
- Лабораторная работа: замена if и switch на when
Модуль 3. Лямбда-выражения (2 ак. ч.)
- Синтаксис лямбда-выражений
- Ссылки на методы
- Функциональные интерфейсы
Модуль 4. Разработка классов (4 ак. ч.)
- Обзор основных концепций ООП
- Перечисления
- Объявление класса
- Поля, свойства, методы, модификаторы доступа
- Конструкторы и инициализаторы
- Data-классы
- Перегрузка операторов
- Функции-расширения и свойства-расширения
- Отложенная инициализация
- Лабораторная работа: создание классов
- Лабораторная работа: конструкторы и инициализаторы
- Лабораторная работа: Data-классы
Модуль 5. Внутренние, вложенные классы (2 ак. ч.)
- Внутренние классы
- Вложенные классы
- Шаблон синглтон
- Объекты-компаньоны
- Лабораторная работа: Использование объектов-компаньонов
Модуль 6. Наследование и полиморфизм (4 ак. ч.)
- Наследование как механизм повторного использования кода
- Конструктор при наследовании
- Преобразование типов
- Виртуальные методы и позднее связывание
- Абстрактные классы и методы
- Open, final, sealed
- Делегирование как альтернатива
- Лабораторная работа: создание иерархий классов
Модуль 7. Интерфейсы и аннотации (2 ак. ч.)
- Концепция интерфейсов
-Объявление интерфейса
- Методы в интерфейсах
- Реализация интерфейса
- Использование и создание аннотаций
Модуль 8. Обработка исключений (2 ак. ч.)
- Концепция исключений
- Исключения Kotlin
- Использование операторов try, catch и finally
- Идиома try-with-resource
- Лабораторная работа: работа с исключениями
- Лабораторная работа: обработка исключений Java кода
Модуль 9. Коллекции (4 ак. ч.)
- Иерархия классов коллекций
- Концепция параметризованных типов данных
- Работа с параметризованными методами и интерфейсами
- Обзор возможностей коллекций в Kotlin
- Лабораторная работа: работа с коллекциями
Модуль 10. Функциональное программирование (4 ак. ч.)
- Функции высшего порядка
- Работа с коллекциями в функциональном стиле
- Последовательности
- Лабораторная работа: функциональное программирование при работе с коллекциями
Модуль 11. Тестирование (2 ак. ч.)
- JUnit
- Mockito
- Лабораторная работа: тестирование методов и классов