В Java, enum
(сокращение от “enumeration”) представляет собой специальный тип класса, который используется для определения набора фиксированных констант. enum
предоставляет удобный способ группировать связанные константы в один тип, делая код более читаемым и поддерживаемым.
Вот основные особенности и примеры использования enum
в Java:
Определение Enum
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
Использование Enum
public class EnumExample {
public static void main(String[] args) {
Day today = Day.MONDAY;
switch (today) {
case MONDAY:
System.out.println("It's Monday!");
break;
case FRIDAY:
System.out.println("It's Friday!");
break;
default:
System.out.println("It's another day.");
break;
}
}
}
Методы Enum
Каждое перечисление имеет методы name()
, ordinal()
и values()
.
name()
: Возвращает имя константы как строку.ordinal()
: Возвращает порядковый номер константы (начиная с 0).values()
: Возвращает массив всех констант в порядке их объявления.
Пример использования методов:
public class EnumMethodsExample {
public static void main(String[] args) {
Day today = Day.MONDAY;
System.out.println("Name: " + today.name());
System.out.println("Ordinal: " + today.ordinal());
for (Day day : Day.values()) {
System.out.println(day);
}
}
}
Enum с методами и полями
Enum может иметь собственные методы и поля. Это позволяет делать перечисления более функциональными.
public enum Planet {
MERCURY(3.303e+23, 2.4397e6),
VENUS(4.869e+24, 6.0518e6),
EARTH(5.976e+24, 6.37814e6);
private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double getMass() {
return mass;
}
public double getRadius() {
return radius;
}
}
public class EnumWithMethodsExample {
public static void main(String[] args) {
for (Planet planet : Planet.values()) {
System.out.printf("%s: mass = %f, radius = %f%n", planet, planet.getMass(), planet.getRadius());
}
}
}
Итоги
Использование enum
в Java позволяет:
- Группировать связанные константы.
- Улучшить читаемость и поддержку кода.
- Использовать встроенные методы для работы с перечислениями.
- Определять методы и поля внутри
enum
для расширения функциональности.
enum
является мощным инструментом, который можно использовать в различных ситуациях для упрощения кода и улучшения его структуры.