Java enum keyword example
- Details
- Written by Nam Ha Minh
- Last Updated on 19 August 2019   |   Print Email
In Java, the enum keyword is used to declare a new enumeration type. This keyword has been introduced since Java 5. The declaration syntax for an enum type is as follows:
enum <name> { <enum_constant_1>, <enum_constant_2>, ... <enum_constant_n> <enum_constructor> // other variables & methods as usual }
An enum constant can be declared as follows:
<constant_name>[(arguments)] [{class body}]
Some rules for enum type in Java:
- An enum constant specifies an instance of the enum type.
- An enum constant can be optionally followed by a list of arguments and a class body. The class body is an anonymous class which conforms to rules of anonymous classes and:
- It cannot have any constructor.
- It cannot have any abstract methods.
- Instance methods declared in the class body are only accessible if they override accessible methods declared in the enclosing enum type.
- An enum type cannot be declared abstract or final
- The Enum<E>is the direct superclass of an enum type.
- An enum type can be only declared inside class level, same as class level or in a separate source file. It cannot be declared inside a method or an inner class.
- An enum type can have constructors, methods and variables just like a regular Java class.
Java enum type examples:
A simplest enum type declared inside a class:
class Foo { enum DayOfWeek {MON, TUE, WED, THU, FRI, SAT, SUN}; }
A simple enum type declared in a separate Java file:
public enum ErrorCode { LOW, HIGH, SEVERE }
An enum type which contains constructor, method and variable:
enum Day { MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6), SUN(7); Day(int dayNumber) { this.dayNumber = dayNumber; } private int dayNumber; public int getDayNumber() { return this.dayNumber; } }
An enum type with class body for each enum constant:
enum Priority { LOW { int getPriorityNumber() { return 0; } }, NORMAL { int getPriorityNumber() { return 1; } }, HIGH { int getPriorityNumber() { return 2; } }, SEVERE { int getPriorityNumber() { return 3; } }; abstract int getPriorityNumber(); }
See all keywords in Java.
Other Recommended Tutorials:
- 9 Rules about Constructors in Java
- 12 Rules and Examples About Inheritance in Java
- 12 Rules of Overriding in Java You Should Know
- 10 Java Core Best Practices Every Java Programmer Should Know
- Understand Interfaces in Java
- Understand how variables are passed in Java
- Understand encapsulation in Java
Comments