Enums, short for enumerations in Java are a group of named constants that you can define in an array-like structure. They are useful for when you want to create a bunch of related values.
Defining an Enum
Let's dive straight into it and define an enum using the enum
keyword:
enum Fruit {
APPLE,
ORANGE,
BANANA
}
This enum we have created is named Fruit
and it contains three items in it. Keep in mind that it is convention to capitalize all the names. Inside a class, it can look like this:
public class Main {
enum Fruit {
APPLE,
ORANGE,
BANANA
}
public static void main(String[] args) {
}
}
Using an Enum value
Now that we have our enum, we can decide to use it. A common way enums are used are inside a switch statement. Let's see how that looks:
public class Main {
enum Fruit {
APPLE,
ORANGE,
BANANA
}
public static void main(String[] args) {
Fruit fruit = Fruit.APPLE;
switch(fruit) {
case APPLE:
System.out.println("An apple was found!");
break;
case ORANGE:
System.out.println("An orange was found!");
break;
case BANANA:
System.out.println("A banana was found!");
break;
}
}
}
An apple was found!
Looping through Enums
Instead of using an enum one at a time, you can loop through them all by using the values()
method which returns an array of all the enum values. This then allows you to loop over all of them:
public class Main {
enum Fruit {
APPLE,
ORANGE,
BANANA
}
public static void main(String[] args) {
for (Fruit fruit : Fruit.values()) {
System.out.println(fruit);
}
}
}
APPLE
ORANGE
BANANA
For the most part, enums are used when you know the value of them will not change and there's a finite number of them, since they are constant. Real world examples of good cases to use enums include the months in a year, a list of US states, time zones, and the planets in our solar system, to name a few.