Использование перечислений в реализации программы

Сложность: easy Тема: CON
enum перечисления типизация switch

Контекст задачи

При написании программы часто приходится работать с набором фиксированных значений: типы операций, состояния объекта, варианты выбора в меню. Использование «магических чисел» или произвольных строк делает код нечитаемым и подверженным ошибкам. Перечисления (enum) — это инструмент языка, который позволяет задать типизированный набор констант, сделать код безопаснее и понятнее.

Формулировка

Создайте класс с использованием типа enum, реализуйте логику работы с предопределёнными константами и продемонстрируйте корректное применение switch-выражения.

Ожидаемый результат

  • Файл с описанием перечисления (enum) и классом, использующим этот тип
  • Реализация методов, оперирующих значениями перечисления через switch
  • Обработка некорректного (неожиданного) значения

Инструментарий

Методы и подходы:

  • Определение перечисления с помощью ключевого слова enum
  • Использование значений перечисления в switch / if-else
  • Связывание значений с методами и атрибутами перечисления
  • Выброс IllegalArgumentException для некорректных значений

Навигатор

  • Перечисления java — документация
  • Вопрос: Какие состояния или типы могут быть в вашей предметной области, и как их естественным образом выразить через enum?
  • Примеры использования перечислений:
// Определение операций над фигурами
public enum Operation {
    DRAW,
    RESIZE,
    MOVE
}

// Использование значений
public void performOperation(Operation operation) {
    switch (operation) {
        case DRAW:
            // Реализация отрисовки фигуры
            break;
        case RESIZE:
            // Реализация изменения размера фигуры
            break;
        case MOVE:
            // Реализация перемещения фигуры
            break;
        default:
            throw new IllegalArgumentException("Unsupported operation");
    }
}

📝 Критерии оценки

[ ] Перечисление определено с корректным набором констант [ ] Значения перечисления используются в типизированном контексте (параметры, поля) [ ] Реализовано переключение switch по значениям enum [ ] Обработана некорректная ситуация (default / исключение) [ ] Код без «магических чисел» и строк, все константы через enum