Как в перечисление добавить значение

Например есть перечисление

enum week{
    SUNDAY, MONDAY, TUESDAY
}

как сделать так, чтобы при вызове SUNDAY появлялось значение 7, MONDAY 1 и т.д.

System,out.println(SUNDAY) // вывод 7

Ответы (2 шт):

Автор решения: Roman Konoval

Можно так:

enum week {
    SUNDAY(7), MONDAY(1), TUESDAY(2);

    private int value;

    week(int value) {
        this.value = value;
    }

    @Override
    public String toString() {
       return Integer.toString(value);
    }
}
→ Ссылка
Автор решения: gil9red

Действия:

  • В enum добавляете поле для хранения значения и конструктор.
  • Указывая значения перечисления указываете номер дня
  • Чтобы видеть значение перечисления без обращения к полю value, нужно переопределить метод toString

Пример:

public enum DayOfWeek {
   MONDAY(1),
   TUESDAY(2),
   WEDNESDAY(3),
   THURSDAY(4),
   FRIDAY(5),
   SATURDAY(6),
   SUNDAY(7);
   
   int value;
   DayOfWeek(int value) {
       this.value = value;
   }
   
   @Override
   public String toString() {
       return "" + value;
   }
}

Тест:

System.out.println("SUNDAY: " + DayOfWeek.SUNDAY.value);
System.out.println("MONDAY: " + DayOfWeek.MONDAY.value);

System.out.println("SUNDAY.toString(): " + DayOfWeek.SUNDAY);

Результат:

SUNDAY: 7
MONDAY: 1
SUNDAY.toString(): 7
→ Ссылка