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

Лекции

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

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

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

    JAVA 25 SELF
    19 уровень,4 лекция
    Как раскладывать сложные приложения на уровни абстракции (UI, бизнес-логика, доступ к данным), чтобы код оставался понятным и расширяемым. На практике строим мини task‑manager с слоями Task, TaskRepository, TaskService, показываем замены реализаций и плюсы для команды. Разберём best practices, типичные ошибки и пример с сервисами OrderService/ OrderRepository, а также методы вроде saveOrder() и findUserById().
    Открыта
  • Понятие интерфейса, синтаксис объявления

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

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

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

    JAVA 25 SELF
    20 уровень,3 лекция
    В лекции разбираем, что такое функциональный интерфейс (ровно один абстрактный метод), как и зачем помечать его аннотацией @FunctionalInterface, чем допускается дополнять интерфейс через default- и static-методы, а также как применять такие интерфейсы на практике (обычные классы и анонимные классы). Примеры с Runnable, Comparator<T> и интерфейсами из java.util.function дополняются таблицей и разбором типичных ошибок.
    Открыта
  • Интерфейсы в архитектуре Java, паттерны проектирования

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

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

    JAVA 25 SELF
    21 уровень,1 лекция
    Краткое руководство по ссылкам на методы в Java: где и как использовать method reference вместо лямбд. Разберём 4 формы: Класс::метод (статический и «на экземпляре»), объект::метод, Класс::new. Поймём сопоставление сигнатур с функциональными интерфейсами, сравним с лямбда-выражениями, посмотрим практические примеры с forEach, sort, map и обсудим типичные ошибки (несоответствие сигнатур, перегрузка методов и т. п.).
    Открыта
  • Default-методы в интерфейсах

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

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