Understanding Java Enums and Their Implementation

Enumerations in Java are specialized classes that define a fixed set of named constants. They can be implemented through custom class definitions or by using the enum keyword for a more concise approach.

Custom Enum Implementation Define a class with private constructors and public static final instances.

Using the enum Keyword The enum keyword simplifies enum creation. Enum constants must be declared first, followed by fields and methods.

enum ClimateSeason {
    SPRING("Spring", "Mild"),
    SUMMER("Summer", "Hot"),
    AUTUMN("Autumn", "Cool"),
    WINTER("Winter", "Cold");

    private final String displayName;
    private final String temperature;

    ClimateSeason(String displayName, String temperature) {
        this.displayName = displayName;
        this.temperature = temperature;
    }

    public String getDisplayName() {
        return displayName;
    }

    public String getTemperature() {
        return temperature;
    }

    @Override
    public String toString() {
        return "ClimateSeason{" +
                "displayName='" + displayName + '\'' +
                ", temperature='" + temperature + '\'' +
                '}';
    }
}

Key Details of enum

  • Enums implicitly extend java.lang.Enum and are final.
  • Parameterless constructors allow omitting parentheses in constant declarations.
    DEFAULT_SEASON;

    private String displayName;
    private String temperature;

    private ClimateSeason() {
        // Default initialization
    }

Common Enum Methods

  1. toString(): Returns the object's name by default; can be overridden to include attribute details.
public class Demo {
    public static void main(String[] args) {
        ClimateSeason fall = ClimateSeason.AUTUMN;
        System.out.println(fall);
    }
}
  1. name(): Returns the constant's name as declared; cannot be overridden.
public class Demo {
    public static void main(String[] args) {
        ClimateSeason fall = ClimateSeason.AUTUMN;
        System.out.println(fall.name());
    }
}
  1. ordinal(): Provides the zero-based index of the constant.
public class Demo {
    public static void main(String[] args) {
        ClimateSeason fall = ClimateSeason.AUTUMN;
        System.out.println(fall.ordinal());
    }
}
  1. values(): Returns an array of all enum constants.
public class Demo {
    public static void main(String[] args) {
        ClimateSeason[] seasons = ClimateSeason.values();
        for (ClimateSeason season : seasons) {
            System.out.println(season);
        }
    }
}
  1. valueOf(): Converts a string to the corresponding enum constant; throws IllegalArgumentException if invalid.
public class Demo {
    public static void main(String[] args) {
        ClimateSeason fall = ClimateSeason.valueOf("AUTUMN");
        System.out.println("Fall season: " + fall);
    }
}
  1. compareTo(): Compares two enum constants based on their ordinal values.
public class Demo {
    public static void main(String[] args) {
        System.out.println(ClimateSeason.AUTUMN.compareTo(ClimateSeason.WINTER));
    }
}

Tags: java Enums programming software development

Posted on Fri, 26 Jun 2026 17:24:33 +0000 by Avi