Специальный объект для перечислений:
Enum - это отдельная структура. Он может находится в отдельном файле, а может быть частью класса.
Если enum не лежит внутри какого-нибудь класса, он должен быть объявлен public. Если enum будет "внутри" класса, он может быть объявлен private.
В Enum могут быть не только сам список перечислений, но и конструкторы, переменные, методы и специальные коллекции для перечислений:
Если метод в Enum абстрактный, необходимо реализовать этот метод во всех его значениях: