The enumeration class enum was introduced in JDK1.5. Previously, public static final int enum_value was used instead of the enumeration class. The enumeration class enum is a special class that inherits the class java.lang.Enum by default. Like other ordinary classes, enum can also have member variables, methods, and constructors, and can also implement one or more interfaces. The difference is:
1. If there is a constructor, it must be decorated with private.
2. Enumeration classes cannot derive subclasses.
3. All instances of the enumeration class must be clearly defined on the first line. The system will automatically add public static final modification to these instances without the need for programmers to explicitly define them.
4. The enumeration class provides the values() method by default to facilitate traversing all enumeration values.
Methods in enum (methods provided by Enum):
public final int compareTo(E o) Compares enumeration values of the same type
public final int ordinal() Returns the index value of the enumeration, starting from zero for the first enumeration value.
public final String name() returns the enumeration instance name
public String toString() returns the enumeration output name
Traffic light example
public enum TrafficLight { RED("Red"), YELLOW("Yellow"), GREEN("Green"); private String name; private TrafficLight(String name) { this.name = name; } public String getName() { return name; } public void jude(TrafficLight light) { switch (light) { case RED: System.out.println("stop"); break; case YELLOW: System.out.println("go"); break; case GREEN: System.out.println("wait"); break; default: break; } } public static void main(String[] args) { for (TrafficLight e : TrafficLight.values()) { System.out.println(e.name()); } }}