0Pricing
Java Academy · Lesson

Enums with Fields and Methods

Add behavior to enums.

Enums Are Full Classes

A Java enum is far more than a list of constants. It is a real class whose instances are the constants.

That means enums can have fields, constructors, and methods like any other class.

public class Main {
    enum Direction { NORTH, SOUTH, EAST, WEST }
    public static void main(String[] args) {
        Direction d = Direction.NORTH;
        System.out.println(d + " is a " + d.getClass().getSuperclass().getSimpleName());
    }
}

Adding a Field

You can attach data to each constant. Declare a final field and a constructor, then pass values in parentheses after each constant.

public class Main {
    enum Planet {
        EARTH(9.81), MARS(3.71), JUPITER(24.79);
        private final double gravity;
        Planet(double gravity) { this.gravity = gravity; }
        double gravity() { return gravity; }
    }
    public static void main(String[] args) {
        System.out.println("Mars gravity: " + Planet.MARS.gravity());
    }
}

All lessons in this course

  1. Enums with Fields and Methods
  2. Abstract Methods in Enums
  3. EnumSet
  4. EnumMap
← Back to Java Academy