Java Operators

Java Control Statements

Object Oriented Programming

Java Built-in Classes

Java File Handling

Java Error & Exceptions

Java Multithreading

Java Synchronization

Java Networking

Java Collections

Java Interfaces

Java Data Structures

Java Collections Algorithms

Advanced Java

Java Miscellaneous

Java APIs & Frameworks

Java Class References

Java Useful Resources

Java - Enum Class



In Java, enum (short for enumeration) is a special type of class that allows you to define a group of constants(fixed). It gives type safety(can assign only predefined values) and provide a way to group related values under a single type, making your code more readable and maintainable.

To create an enum, use the enum keyword and make sure the constants are in uppercase letter and separated by a comma.

Why Do We Need Enums?

Without enums, constants are usually defined with public static final int variables. But this is not corrcet because any number could be assigned, even invalid ones. Enums solve this problem by grouping related constants together and allowing only valid predefined values. Enum declaration can be done outside a class or inside a class, but not inside a method.

Different scenarios where enums are better than constants βˆ’

  • Days of the week
  • Directions(NORTH, SOUTH, EAST, WEST)
  • Seasons(WINTER, SPRING, SUMMER, RAINY)
  • Status codes (RUN, STOP)

Syntax

Declaring an enum is similar to declaring a class, but it uses the 'enum' keyword instead of 'class'.

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

File Class methods

Let's see the below methods of enum classβˆ’

Sr.No. Method & Description
1 int compareTo(E o)

This method compares this enum with the specified object for order.

2 boolean equals(Object other)

This method returns true if the specified object is equal to this enum constant.

3 Class<E> getDeclaringClass()

This method returns the Class object corresponding to this enum constant's enum type.

4 int hashCode()

This method returns a hash code for this enum constant.

5 String name()

This method returns the name of this enum constant, exactly as declared in its enum declaration.

6 int ordinal()

This method returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero).

7 String toString()

This method returns the name of this enum constant, as contained in the declaration.

8 static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)

This method returns the enum constant of the specified enum type with the specified name.

Lets see the below some examples of enum in diferent cases βˆ’

Enum in a Switch Statement

Following example showcases the usage of enum in if and switch statements.

public class EnumDemo {
   public static void main(String args[]) {
      
      //print an Enum
      System.out.println(Mobile.Motorola);

      Mobile mobile = Mobile.Samsung;
      //Usage in IF statment
      if(mobile == Mobile.Samsung) {
         System.out.println("Matched");
      }
      //Usage in Swith statment
      switch(mobile) {
         case Samsung:
            System.out.println("Samsung");
            break;
         case Nokia:
            System.out.println("Nokia");
            break;
         case Motorola:
            System.out.println("Motorola");
      }
   }
}
enum Mobile {
   Samsung,
   Nokia,
   Motorola
}

Let us compile and run the above program. It will produce the following result βˆ’

Motorola
Matched
Samsung

Enum inside a Class

Following example showcases the usage of enum in inside a class βˆ’

public class TrafficSignal {
    // enum declared inside a class
    enum Light {
        RED, YELLOW, GREEN
    }

    public static void main(String[] args) {
        Light signal = Light.RED;
        System.out.println("Signal is: " + signal);
    }
}

Let us compile and run the above program. It will produce the following result βˆ’

Signal is: RED

Enum Outside a Class

Following example showcases the usage of enum outside a class βˆ’

public class Test {
    public static void main(String[] args) {
        Color c1 = Color.RED;
        System.out.println("Selected color: " + c1);
    }
}

enum Color {
    RED, GREEN, BLUE;
}

Let us compile and run the above program. It will produce the following result βˆ’

Selected color: RED

Conclusion

In Java, an enum is a special kind of class. Unlike a normal class where you create objects using the new keyword, an enum automatically creates its objects, which are the constants.

A normal class can extend another class and have public constructors, but an enum always extends java.lang.Enum and cannot be explicitly extended, and its constructors are private. While classes are used to model real-world entities like Car or Student, enums are used to represent a fixed set of constants such as days of the week, directions, or status codes.

Advertisements