О чём курс
Данный курс охватывает все фундаментальные аспекты языка Java, начиная с приемов процедурного программирования и заканчивая продвинутыми объектно-ориентированными темами, такими как инкапсуляция, абстракции, наследование и полиморфизм, в т.ч. затрагивает основы самого современного (т.н. функционального) подхода.;
Курс также знакомит с модульным тестированием и др.незаменимыми инструментами (Git, Maven). Вы получите практические навыки, необходимые для успешной работы в качестве Java-разработчика уровня Junior.
Предварительная подготовка
Базовые знания компьютерной грамотности и желание учиться программированию.
Для кого
Разработчик
Улучшаемые навыки
Java
ООП
Git
Maven
IntelliJ IDEA
TDD
Расписание курсов
Программа курса
Понятие переменной и области ее действия;
Структура Java-класса;
Создание исполняемых Java-приложений с методом main();
Запуск Java-программы с командной строки, включая вывод в консоль;
Настройка компиляции и режима работы JVM;
Платформенная независимость, процедурный подход и объектная ориентация в Java, принцип инкапсуляции;
Импорт Java-пакетов.
Объявление и инициализация, в т.ч. приведение примитива;
Дифференциация между ссылочными и примитивными переменными;
Стек и динамическая память (heap);
Чтение и запись объектных полей;
Жизненный цикл объекта (создание, переброс ссылки, сборка мусора);
Разработка кода, использующего классы-оболочки (Double, Integer и т.д.).
Тест по итогам модуля
03
Операторы и структуры ветвления
Применение операторов, включая переопределение приоритета;
Проверка идентичности строковых и др.объектов с использованием оператора == и метода equals();
Конструкции if и if-else, а также тернарный оператор;
Применение оператора switch.
Тест по итогам модуля
04
Создание и применение массивов, работа с циклами
Объявление, инстанциация и применение одномерных и многомерных массивов;
Создание и применение циклов while, for (в т.ч. for-each) и do-while;
Сравнение циклических конструкций
Применение операторов break и continue.
Тест по итогам модуля
Создание методов, которые принимают аргументы и возвращают значения, в т.ч. перегрузка методов;
Применение ключевого слова static к методам и полям;
Создание и перегрузка конструкторов, включая влияние на дефолтный конструктор;
Применение модификаторов доступа;
Реализация принципов инкапсуляции в классе;
Поведение объектных ссылок и примитивных переменных, передаваемых в методы.
Тест по итогам модуля
Наследование и его преимущества;
Разработка кода, демонстрирующего полиморфизм, включая переопределение методов и противопоставление объектного типа ссылочному;
Необходимость в приведении типов;
Применение ключевых слов super и this для доступа к объектам и конструкторам;
Применение абстрактных классов и интерфейсов.
Тест по итогам модуля
Противопоставление контролируемых исключений неконтролируемым, в т.ч. ошибкам;
Создание блока try-catch и влияние исключений на штатный алгоритм работы программы;
Преимущества обработки исключений;
Создание и вызов метода, возбуждающего исключение;
Работа с типичными классами исключений.
Тест по итогам модуля
08
Избранные классы библиотеки Java API
Манипуляция данными посредством класса StringBuilder и его методов;
Создание и манипуляция String-объектами;
Создание и манипуляция календарными датами посредством классов из пакета java.time;
Объявление и применение коллекций ArrayList заданного типа;
Составление простого лямбда-выражения, которое потребляет Predicate;
Тест по итогам модуля
09
Модульное тестирование, рефакторинг, рекомендуемые практики, введение в Git и Maven
Общее представление о TDD (Test-Driven Development);
Знакомство с модульными тестами и фреймворком Junit;
Общее представление о целях и приемах рефакторинга;
Знакомство с Git;Введение в Maven;
Тест по итогам модуля
10
Краткий экскурс в принципы работы цифровых устройств
Двухстабильная логика, булева алгебра, таблицы истинности;
КМОП-структура, инвертор, NAND-вентиль;
АЛУ, регистры, микропроцессорные команды;
Двоичное представление, в т.ч. отрицательных и вещественных чисел (2’C).
Практика: разработка NOR-вентиля и RS-защелки
Разработка консольного приложения (игра Blackjack Solitaire)
12
Обобщенный тест с вопросами сертификационного уровня «Базовый»
13
Итого на курс 40 часов: теория – 16 ч ( 40 %), практика – 24 ч ( 60%)
Чему вы научитесь
01
Создавать и запускать Java-приложения
02
Применять модификаторы доступа и принципы инкапсуляции
03
Разрабатывать код, демонстрирующий полиморфизм и наследование
04
Обрабатывать исключения и создавать собственные классы исключений
05
Применять базовые приемы функционального программирования
06
Проводить модульное тестирование с использованием Junit
07
Управлять обновлениями кодовой базы через Git
08
Собирать сложные проекты при помощи Maven