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

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

Сделайте enum Level с константами LOW, MID и HIGH. Дана переменная:

Level lv = Level.MID;

Выведите имя константы строчными буквами.

Сделайте enum EmployeeStatus с полем code: DRAFT("d"), LIVE("l"), ARCHIVED("a"). Выведите code для EmployeeStatus.LIVE.

Сделайте enum Op с константами PLUS и MINUS. Напишите метод calc(int a, int b, Op op). Выведите результат для 7, 3 и Op.MINUS.

Дан sealed class:

sealed interface Result permits Result.Ok, Result.Err { record Ok(int value) implements Result {} record Err(int code) implements Result {} }

Напишите метод describe(Result r): для Ok - строка "v=" и значение, для Err - "e=" и код. Выведите описание для new Result.Err(404).

Сделайте sealed interface State с вариантами Idle и record Work(int step), реализующим State. Дана переменная:

State st = new State.Work(2);

Через switch выведите "idle", "work" и номер шага или "?" для неизвестного варианта.

Сделайте enum Size с константами S, M и L. Дан список:

import java.util.List; List<Size> sizes = List.of(Size.S, Size.L, Size.M, Size.S);

Выведите число элементов Size.S.

Сделайте sealed interface Expr с вариантами record Num(int v) и record Mul(Expr a, Expr b). Напишите метод eval(Expr e). Выведите результат для new Mul(new Num(3), new Num(4)).

Сделайте enum Dir с константами N, E, S и W. Сделайте sealed interface Move с вариантами record Step(Dir dir, int len) и Stop как enum с одной константой. Дано движение new Move.Step(Dir.E, 5). Выведите имя направления и len, разделив пробелом.

Дан enum:

enum Role { USER, ADMIN } boolean canDelete(Role role) { return role == Role.ADMIN; }

Выведите canDelete(Role.USER) и canDelete(Role.ADMIN).

Сделайте sealed interface Pay с вариантами record Card(String last4) и Cash как enum с одной константой. Дан список:

import java.util.List; List<Pay> ways = List.of( Pay.Cash.INSTANCE, new Pay.Card("1234"), new Pay.Card("9999") );

Выведите число вариантов Card в списке.

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