Home Java Java Enums

Java Enums

Beginner ⏱ 8 min read Updated: Jul 2026

An Enum (short for Enumeration) in Java is a special data type that represents a fixed set of constant values. Instead of using numbers or strings for predefined values, enums allow you to define meaningful named constants. This makes Java programs easier to read, safer to use, and less prone to errors.

Java enums are commonly used to represent days of the week, months, colors, directions, user roles, order status, and other values that remain constant throughout an application.

What is an Enum in Java?

An enum is a special Java class that contains a fixed collection of constants. Once an enum is declared, its values cannot be changed, making it ideal for storing predefined values.

Java introduced enums in JDK 5 to provide a type-safe alternative to integer constants. Enums improve code readability and help prevent invalid values from being assigned.

💡
Key Point: Enums represent a fixed set of constants. Their values cannot be modified during program execution.

Syntax of Java Enum

Syntax
enum EnumName {
    CONSTANT1,
    CONSTANT2,
    CONSTANT3
}

Example of Java Enum

The following example creates an enum named Day containing seven constant values. One of these values is then assigned to a variable and printed.

Example
enum Day {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}
public class Main {
    public static void main(String[] args) {
        Day today = Day.MONDAY;
        System.out.println(today);
    }
}
Output
MONDAY

In this example, MONDAY is one of the predefined enum constants. Since enum values are fixed, Java ensures that only valid constants can be assigned to the variable.

Using Enum with Switch Statement

Enums work perfectly with the switch statement. This makes code more readable because each constant can be handled separately without comparing strings or numbers.

Example
enum Day {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}
public class Main {
    public static void main(String[] args) {
        Day today = Day.FRIDAY;
        switch(today) {
            case MONDAY:
                System.out.println("Start of the week");
                break;
            case FRIDAY:
                System.out.println("Weekend is near");
                break;
            case SUNDAY:
                System.out.println("Holiday");
                break;
            default:
                System.out.println("Regular working day");
        }
    }
}
Output
Weekend is near

Common Enum Methods

Java automatically provides several useful methods for working with enums. These methods help retrieve enum values, names, and positions without writing additional code.

  • values() – Returns all enum constants.
  • valueOf() – Returns an enum constant by its name.
  • ordinal() – Returns the position of an enum constant.
  • name() – Returns the constant name as a string.

Example Using values()

Example
enum Color {
    RED,
    GREEN,
    BLUE
}
public class Main {
    public static void main(String[] args) {
        for(Color c : Color.values()) {
        System.out.println(c);
        }
    }
}
Output
RED GREEN BLUE

Advantages of Java Enums

Enums make Java programs cleaner, safer, and easier to maintain. They eliminate the need for hard-coded numbers or strings and provide better type safety.

Type Safe

Prevents invalid values from being assigned.

Readable Code

Uses meaningful constant names instead of numbers.

Easy Maintenance

Updating constants becomes simple and organized.

Switch Support

Works naturally with Java switch statements.

Built-in Methods

Includes methods like values(), valueOf(), and ordinal().

Important Points About Java Enums

  • Enums are declared using the enum keyword.
  • Each enum constant is automatically public static final.
  • Enums can contain constructors, methods, and fields.
  • Enums cannot extend another class because they already extend java.lang.Enum.
  • Enums are commonly used for fixed values such as days, months, colors, and status codes.

Summary

Java Enums provide a simple and type-safe way to represent a fixed set of constants. They improve code readability, reduce programming errors, and make applications easier to maintain. Enums also include useful built-in methods and integrate seamlessly with switch statements, making them one of the most practical features in Java.