Профессиональный код на ООП + Java задачи [javabegin] [Тимур Батыршинов]
Пошаговые уроки для новичков и профи: все главные принципы разработки Java проектов, которые требуются в любой крупной компании (для Junior, Middle, Senior).
Не совершайте ошибку: наверно 9 из 10 человек, которые приходят к нам учиться, совершают одну и ту же ошибку. Начинают решать много задач просто на знание синтаксиса, без понимания основных принципов ООП, проектирования и пр.
Это ОЧЕНЬ большая ошибка, вы просто потеряете время. Вам сначала нужно получить СИСТЕМНЫЕ знания и только потом их оттачивать на задачах.
Курс состоит из 129 уроков!
Курс будет с высоким качеством видео и текстом в pdf формате.
Это 1-ый курс из сборника javabeginПошаговые уроки для новичков и профи: все главные принципы разработки Java проектов, которые требуются в любой крупной компании (для Junior, Middle, Senior).
Не совершайте ошибку: наверно 9 из 10 человек, которые приходят к нам учиться, совершают одну и ту же ошибку. Начинают решать много задач просто на знание синтаксиса, без понимания основных принципов ООП, проектирования и пр.
Это ОЧЕНЬ большая ошибка, вы просто потеряете время. Вам сначала нужно получить СИСТЕМНЫЕ знания и только потом их оттачивать на задачах.
- ООП
- Базовые синтаксис и коллекции
- Dependency Injection
- Gradle
- Lombok
- Планирование проекта
- Паттерны проектирования
- Принципы GRASP
- Принципы SOLID
- Задачи на закрепление
Курс состоит из 129 уроков!
Курс будет с высоким качеством видео и текстом в pdf формате.
- Перед началом
- Что нужно знать новичку и профи
- План прохождения ООП
- Объектный подход
- Создание проекта Java
- Структура проекта
- Создание объекта
- Классы и объекты
- Класс и файл в Java
- Свойства (поля) объекта
- Методы (действия) объекта
- Подстановка значений
- Быстрые переходы по классам, методам
- Области видимости
- Ключевые слова
- Пакеты
- Чекпоинт-1
- Задача Computer-1
- Инкапсуляция объекта
- Типы данных в Java
- Геттеры и сеттеры
- Конструкторы
- Особенности конструкторов
- Метод с возвращаемым результатом
- Метод void
- API объекта
- Задача Computer-2
- Чекпоинт-2
- Наследование
- Ключевое слово extends
- Доработка в дочернем классе
- Переопределение @Override
- Ключевое слово super
- Конструкторы при наследовании
- super в конструкторе при наследовании
- Цепочка наследования
- Принцип "is-a" ("является")
- @Override в цепочке наследования
- super в цепочке наследования
- Связь конструкторов в наследовании
- Вызов конструкторов по цепочке
- Задача Наследование
- Ассоциация
- Принцип "has-a" ("содержит")
- Пример ассоциации
- Ошибка NullPointerException
- Чекпоинт-3
- Константы final
- final и конструкторы
- Статичные переменные
- Статичные методы
- Статичные константы final static
- Чекпоинт-4
- Абстракция и реализация
- Интерфейсы
- Свойства в интерфейсах
- Абстрактный класс
- Абстрактные методы
- Конструкторы в абстрактном классе
- Наследование в абстрактном классе
- Ассоциация в интерфейсах
- Наследование интерфейса
- Несколько интерфейсов для класса
- Дефолтные методы в интерфейсах
- Чекпоинт-5
- Задача Car
- Задача Computer с интерфейсом
- Задача Printer
- Удобное форматирование строк
- Полиморфизм
- Тип переменной и фактический объект
- Приведение типов
- Возможные ошибки
- Восходящее и нисходящее приведение
- Сигнатура метода
- Перегрузка методов
- Метод toString
- Значения по-умолчанию для переменных
- Чекпоинт-6
- Задача Music
- Задача Город
- Что такое Gradle
- Создание нового проекта Gradle
- Подключение Gradle к существующему проекту
- Разбор файла build.gradle
- Поиск и подключение зависимостей
- Локальный репозиторий
- Команды для подключения зависимостей
- Кодировка при компиляции
- Что такое Dependency Injection (DI)
- Контейнеры DI
- Библиотеки и спецификации DI
- Подключение библиотеки Weld
- Применение СDI Weld в коде
- Выборочное добавление бинов
- Несколько реализаций интерфейса
- Внедрение бина с помощью @Named
- @Inject с конструктором
- @Inject с сеттером
- new и @Inject
- Аннотация @Produces
- Задача Car с применением DI
- DI и JavaSE
- Понятие Inversion of Control (IoC)
- Что такое Lombok
- Подключение Lombok в IDEA
- Аннотации @Getter в Lombok
- Конструкторы в Lombok
- Аннотация @NonNull в Lombok
- Приложение Music на Lombok
- Что такое SOLID и GRASP
- Мышление через призму SOLID
- Single Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Проверка SOLID на задачах
- Что такое GRASP
- Information Expert - обработка данных объекта
- Creator - вложенность объектов
- Low Coupling - слабое связывание
- High Cohesion - высокая связанность
- Controller - обработка действий в UI
- Pure Fabrication - искусственные объекты
- Indirection - ссылки на интерфейсы, а не объекты
- Polymorphism - универсальный код
- Protected Variations
- Что изучать дальше
https://javabegin.ru/courses/osnovy-java-oop-2021/