JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Реализация абстракций и иерархий

    JAVA 25 SELF
    19 уровень,2 лекция
    В лекции разбираем, как в Java строить иерархии классов: выделять абстракции в базовый класс, реализовывать детали в наследниках, пользоваться полиморфизмом и расширять систему без переписывания кода. На примерах фигур, мини‑редактора, платёжных систем и транспорта посмотрим, как вынести общее, избежать дублирования и не совершать типичных ошибок. Ключевые понятия: abstract-классы, полиморфизм, переопределение area()/ draw(), общие поля и методы.
    Открыта
  • Примеры построения абстракций в реальных задачах

    JAVA 25 SELF
    19 уровень,3 лекция
    На практических примерах (платёжные системы, транспорт, фигуры в редакторе) разбираем, как строить абстракции в Java: выделять общий контракт через abstract базовый класс, выносить общее поведение, применять полиморфизм и избегать копипасты. Покажем преимущества подхода, сравним с «ветвистым» кодом на if- else и разберём типичные ошибки при проектировании абстракций.
    Открыта
  • Упрощение сложных систем с помощью абстракций

    JAVA 25 SELF
    19 уровень,4 лекция
    Как разложить сложное приложение на простые уровни, чтобы не утонуть в хаосе: рассматриваем многоуровневые абстракции (UI, бизнес-логика, доступ к данным), показываем практический пример на Java с Task, TaskService, TaskRepository, разбираем преимущества для командной разработки, best practices и типичные ошибки. Поймёте, где абстракции упрощают, а где — усложняют систему.
    Открыта
  • Понятие интерфейса, синтаксис объявления

    JAVA 25 SELF
    20 уровень,0 лекция
    В этой лекции вы узнаете, что такое интерфейс в Java, чем он отличается от класса, как объявлять интерфейсы с помощью ключевого слова interface, реализовывать их через implements, а также как использовать интерфейсы из стандартной библиотеки ( Comparable, Runnable и др.). Подробные примеры и типичные ошибки помогут быстро и уверенно применять интерфейсы в ваших проектах.
    Открыта
  • Отличие интерфейсов от абстрактных классов

    JAVA 25 SELF
    20 уровень,1 лекция
    В этой лекции разбираем ключевые различия между интерфейсами и абстрактными классами в Java: что это такое, когда что использовать, каковы ограничения и возможности каждого подхода. Сравнительная таблица, примеры из JDK, практические кейсы и типичные ошибки помогут быстро и уверенно выбрать правильный инструмент под задачу.
    Открыта
  • Множественная реализация интерфейсов

    JAVA 25 SELF
    20 уровень,2 лекция
    В этой лекции разбираем, как в Java один класс может реализовывать несколько интерфейсов: синтаксис с ключевым словом implements, комбинирование ролей, совпадающие сигнатуры методов, отсутствие «алмаза смерти», нюансы с default-методами и типичные ошибки. Всё с понятными примерами кода.
    Открыта
  • Функциональные интерфейсы: @FunctionalInterface

    JAVA 25 SELF
    20 уровень,3 лекция
    Разбираем функциональные интерфейсы в Java: что это такое, зачем нужна аннотация @FunctionalInterface, как использовать лямбда-выражения и стандартные интерфейсы из пакета java.util.function. Практические примеры, задания и разбор типичных ошибок.
    Открыта
  • Интерфейсы в архитектуре Java, паттерны проектирования

    JAVA 25 SELF
    20 уровень,4 лекция
    В лекции разбираем интерфейсы как контракт в Java: зачем программировать против абстракций, как работает внедрение зависимостей (DI) с помощью интерфейсов, где интерфейсы лежат в основе паттернов Observer, Strategy и Command, а также какие преимущества это даёт архитектуре (слабое связывание, тестируемость, расширяемость по OCP) и какие ошибки встречаются чаще всего. Примеры с UserRepository, NotificationSender и реальными сценариями помогут закрепить практику.
    Открыта
  • Введение в лямбда-выражения

    JAVA 25 SELF
    21 уровень,0 лекция
    В лекции разберём лямбда-выражения в Java: что это и зачем нужны, синтаксис и сокращения, связь с функциональными интерфейсами ( @FunctionalInterface), захват переменных (effectively final) и отличие от анонимных классов. На примерах с Runnable, Comparator, Function и Stream API увидим, как лямбды делают код короче и понятнее. В конце — типичные ошибки и способы их избежать.
    Открыта
  • Method References (::): ссылки на методы

    JAVA 25 SELF
    21 уровень,1 лекция
    Коротко и по делу о method reference в Java: как передавать существующие методы и конструкторы в места, где ожидаются лямбды. Разберём 4 вида ссылок ( Класс::метод, объект::метод, Класс::методЭкземпляра, Класс::new), сопоставление сигнатур с функциональными интерфейсами, примеры со forEach, sort, Stream API ( map) и типичные ошибки. На практике: System.out::println, String::length, Integer::parseInt, Dog::new.
    Открыта
  • Default-методы в интерфейсах

    JAVA 25 SELF
    21 уровень,2 лекция
    В этой лекции разберём, как начиная с Java 8 интерфейсы получили default-методы — реализацию по умолчанию прямо в интерфейсе. Вы узнаете, как с их помощью развивать API без поломки старого кода, как выглядит синтаксис ( default перед возвращаемым типом), какие ограничения существуют (запрет на переопределение методов Object — equals/ hashCode/ toString), как разрешать конфликты при множественной реализации и где default-методы используются в стандартной библиотеке (например, forEach, replaceAll, sort в List).
    Открыта
  • Static-методы в интерфейсах

    JAVA 25 SELF
    21 уровень,3 лекция
    В этой лекции разберём, что такое static-методы в интерфейсах Java: как они объявляются и вызываются, чем отличаются от default-методов, какие у них ограничения (включая private static с Java 9+), и где используются в стандартной библиотеке. На практических примерах ( Movable.resetPosition(), Logger, Comparator.reverseOrder()) увидим, как группировать утилитарные функции рядом с контрактом интерфейса и какие типичные ошибки стоит избегать.
    Открыта
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • ...
  • 57
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2025 JavaRush
MastercardVisa
"Программистами не рождаются" © 2025 JavaRush