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
- Enums with Fields and Methods
- Abstract Methods in Enums
- EnumSet
- EnumMap