Enum (перечисление) - специальный класс для создания ограниченного числа значений (например, дни недели, названия планет и тд.). То есть нельзя создавать свои дни недели и можно вытаскивать уже существующие - в этом и вся суть и весь функционал Enum.
public enum DayOfWeek {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY
}
Сложно, да ?) Мы написали только названия чего-то, как Java-разработчикам со строгой типизацией данных, когда у каждой переменной явно пишется тип (int, Cat и тд), нам не привычно. Давайте заглянем внутрь и посмотрим, во что превращается наш код:
public final class DayOfWeek {
private DayOfWeek();
public static final int SUNDAY = 0;
public static final int MONDAY = 1;
public static final int TUESDAY = 2;
public static final int WEDNESDAY = 3;
public static final int THURSDAY = 4;
public static final int FRIDAY = 5;
public static final int SATURDAY = 6;
}
Здесь уже всё знакомо, обычный класс с кучей констант, у которой каждая переменная инкрементирует счётчик.
Каждый enum - уникальные значения, поэтому от них нельзя наследоваться и их помечают ключевым словом final.
В языке Java есть класс с названием Exception. Он имплементирует интерфейс throwable вместе с классом Error == объекты этих классов можно ловить в try-catch. Синтаксис try-catch используется во многих языках и этот раздел не должен вызвать проблемы у наших clever студентов😇
https://media.istockphoto.com/vectors/error-page-dead-emoji-illustration-vector-id1095047472?k=6&m=1095047472&s=612x612&w=0&h=3pmxoo0x2rRQXv7z_3Ijm_tsMXMkJfImBdBsXmCJ_tQ=
Чтоб Ваш код не подыхал от непредвиденных последствий, например, не найден ожидаемый файл или передали неверный аргумент (ожидали натуральные числа в аргументе метода, передали отрицательное число) для этих случаев и придумали Exceptions.