Использование перечислений в реализации программы
Контекст задачи
При написании программы часто приходится работать с набором фиксированных значений: типы операций, состояния объекта, варианты выбора в меню. Использование «магических чисел» или произвольных строк делает код нечитаемым и подверженным ошибкам. Перечисления (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