Enums

Enums

Enums are classes

That represents an enumeration which is like a fixed set of constants. 

  • Provides type-safe checking
  • Is impossible to create an invalid enum type without a compile error 

A good example for enums are

  • Days of the week
  • Months of the year
  • The cards in a deck

Sample

public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
​}

Usage

Day day = Day.TUESDAY;
System.out.println(Day.MONDAY.); // MONDAY
System.out.println(s == Day.WEDNESDAY); // false

Within a loop

for(Day day: Day.values()) {
   System.out.println(day.name() + " " + day.ordinal() );
}

Output

MONDAY 0
TUESDAY 1
WEDNESDAY 2
THURSDAY 3
FRIDAY 4
SATURDAY 5
SUNDAY 6

Be aware of

if( Day.MONDAY == 0 ) {} // DOES NOT COMPILE

Enums are types and not int

Adding Constructors, Fields and Methods

public enum Season {
    WINTER("Low"), SPRING("Medium"), SUMMER("High"), FALL("Medium");
    private String expectedVisitors;
    private Season(String expectedVisitors) {
        this.expectedVisitors = expectedVisitors;
    }
    public void printExpectedVisitors() {
        System.out.println(expectedVisitors);
    }
}