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