Top.Mail.Ru

Классы и объекты (часть 1). Классы как шаблоны. Наследование, полиморфизм.

Автор урока: Азиз Намазов, Amazon
Привет!
Внимание: данное занятие достаточное технически сложное — мы взяли его из середины курса, поэтому (если вам будет сложно) — можете написать нам и мы поделимся более базовым материалом, не стесняйтесь :)

Также, мы всегда готовы подсказать любые вопросы по данному уроку и помочь вам разобраться, — будем на связи и желаем продуктивного изучения материала.
На этом уроке разберёмся с основными кирпичиками, из которых состоит любая программа на Java – с классами и объектами.

Посмотрим, как их можно применить и познакомимся с основами объектно-ориентированного программирования. Поехали!

Цели:
  • Узнать об основах Объектно-ориентированного программирования.
  • Научиться использовать структуры для построения приложений на строго-типизированных языках.

Это занятие мы сделали открытым, чтобы ты мог его посмотреть и познакомиться с форматом курса

Как проходит обучение
1
Изучаете тему
Лекции в видеоформате, воркшопы с разбором кейсов и квизы для закрепления знаний
2
Выполняете
задания
В том темпе, в котором вам удобно и получаете обратную связь.

3
Общаетесь с наставником
Закрепляете знания и исправляете ошибки
4
Открываете новый урок
После выполнения и проверки всех заданий текущего блока
Куда трудоустраиваются студенты
Помогаем нашим студентам попадать на собеседования и устраиваться на работу
Программа курса
Блок 1
Блок 1
Основы Java
  • Знакомство с языком Java и инструментами
  • Переменные и типы данных в Java
  • Алгоритмы на Java
  • Работа с массивами
  • Классы и объекты (Часть 1)
  • Классы и объекты (Часть 2)
  • Обработка исключений
  • Строки и регулярные выражения
  • Первая программа на Java
  • Бонусный урок: разбираем домашние задания
Блок 2
Блок 2
Java Core
  • Знакомство с алгоритмами
  • Введение в коллекции: списки, стеки и очереди
  • Коллекции: map, set
  • Stream api, lambda, optional
  • Домашнее задание по коллекциям Java
  • Generic-типы. Runtime, wildcards & PECS
  • Работа с памятью JVM
  • Знакомство с Linux
  • Продолжение знакомства с Linux
  • Работа с файлами. Адаптер и декоратор
  • Домашнее задание: консольная утилита для поиска по файлу
  • Сериализация .Взаимодействие сервисов, бинарная сериализация, xml, json, yaml
  • Работа с сетью. UPD, TCP/HTTP, OSI
  • Домашнее задание: работа с сетью и API
  • Java библиотека NIO. Отличия IO и NIO
  • Многопоточное программирование в Java. Синхронизация, классы concurrent.
  • Рефлексия в Java. Создание аннотаций.
Блок 3
Блок 3
Работа с Git и Spring Framework
  • Предназначение системы контроля версий
  • Основные операции (фиксация и откат изменений, поиск, история)
  • Работа с сервисом GitHub
  • Ветки, слияние веток и разрешение конфликтов
  • Командная работа
  • Dependency Injection. Поле, конструктор, сеттер
  • Системы автоматической сборки Java-проектов. Gradle, Maven
  • Java-config Spring'a
  • Обзор REST, SOAP, RPC
  • Spring MVC + REST
  • Spring Boot
  • Spring Boot Test. Библиотека MockMvc
Блок 4
Блок 4
SQL и базы данных
  • Виды баз данных. Relation, key-value, document, colon
  • Реляционные базы данных MySQL, PostgreSQL
  • Индексы
  • Синтаксис SQL
  • Как работать из Java c реляционными базами. JDBC, JPA, ORM, Hibernate
  • Транзакции и уровни изоляции
  • NoSQL, MongoDB. Как работать из Java
  • Spring Data
Блок 5
Блок 5
Шаблоны проектирования и создание приложений
  • Порождающие. Builder, Singletone, Factory Method
  • Структурные. Proxy, Decorator, Adapter
  • Поведенческие. Command, Iterator, Observer, Chain of Responsibility
  • Свойства хорошего кода. Abstraction, Composition, Coupling, Cohesion
  • Принципы SOLID
  • Основы клиент-серверного взаимодействия
  • Основы HTML, CSS
  • Разработка приложения на Spring Boot с созданием контроллера и подключением к базе данных
Финал
Финал
Дипломная работа и помощь с трудоустройством
  • Работа над дипломным проектом
  • Подготовка резюме
  • Подготовка к собеседованию
  • Финальная защита и консультации

В финальной программе возможны небольшие правки на основании фидбэка и потребностей студентов курса
Что изучим на занятии
Теория:
  • Класс и его составные части
  • Объект
  • Наследование
  • Полиморфизм
Практика:
  • Учимся создавать классы как структуры объектов
  • Учимся использовать составные части классов
  • Изучаем основные принципы ООП
  • Строим объектные модели сложных приложений
Инструменты: