Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpEsPrm 102 of 147 menu
◀ ▶

Практика enum и sealed в Java

Задачи опираются на приёмы раздела: константы enum, поля и конструктор enum, подтипы sealed с классами и record, исчерпывающий switch без default.

Объявите enum EmployeeStatus с константами DRAFT, PUBLISHED и ARCHIVED. Напишите метод isPublic(EmployeeStatus status): для PUBLISHED верните true, для остальных - false. Выведите результат для EmployeeStatus.PUBLISHED.

Объявите enum Role с полем code: GUEST(0), USER(1), ADMIN(2). Дана переменная:

Role role = Role.USER;

С помощью switch выведите метку: GUEST - "guest", USER - "user", ADMIN - "admin".

Объявите enum EmployeeType с полем maxVacationDays: INTERN(14), STAFF(28), LEAD(35). Выведите все пары "name:days" в порядке values(), каждую с новой строки.

Объявите sealed class EmployeeResult permits EmployeeOk, EmployeeFail: EmployeeOk как record с полем id, EmployeeFail как record с полем code. Напишите метод summary(EmployeeResult r): для успеха верните строку "ok " и id, для ошибки - "err " и code. Выведите результат для new EmployeeFail(503).

Объявите sealed interface Employee permits NamedEmployee, GuestEmployee: GuestEmployee - пустой final класс, NamedEmployee - record с полем name. Дано:

Employee employee = new NamedEmployee("Ann");

С помощью switch выведите "guest" или имя сотрудника.

Объявите enum Role с константами GUEST, USER, ADMIN. Дана строка "USER". Получите константу через valueOf, затем в switch выведите "allowed" для USER и ADMIN, "denied" для GUEST.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить