La clase de enumeración enum se introdujo en JDK1.5. Anteriormente, se usaba public static final int enum_value en lugar de la clase de enumeración. La clase de enumeración enum es una clase especial que hereda la clase java.lang.Enum de forma predeterminada. Al igual que otras clases ordinarias, enum también puede tener variables miembro, métodos y constructores, y también puede implementar una o más interfaces. La diferencia es:
1. Si hay constructor, éste deberá estar decorado con privado.
2. Las clases de enumeración no pueden derivar subclases.
3. Todas las instancias de la clase de enumeración deben estar claramente definidas en la primera línea. El sistema agregará automáticamente modificaciones finales estáticas públicas a estas instancias sin la necesidad de que los programadores las definan explícitamente.
4. La clase de enumeración proporciona el método valores () de forma predeterminada para facilitar el recorrido de todos los valores de enumeración.
Métodos en enum (métodos proporcionados por Enum):
public final int compareTo(E o) Compara valores de enumeración del mismo tipo
public final int ordinal() Devuelve el valor del índice de la enumeración, comenzando desde cero para el primer valor de la enumeración.
public final String name() devuelve el nombre de la instancia de enumeración
public String toString() devuelve el nombre de salida de la enumeración
Ejemplo de semáforo
enumeración pública TrafficLight { ROJO("Rojo"), AMARILLO("Amarillo"), VERDE("Verde"); nombre de cadena privada; semáforo privado(nombre de cadena) { this.name = nombre } cadena pública getName() { return nombre; } public void jude(Semáforo) { interruptor (luz) { caso ROJO: System.out.println("parada" caso AMARILLO: System.out.println("go"); break; caso VERDE: System.out.println("wait"); valor predeterminado: break; public static void main(String[] args) {for (TrafficLight e; : TrafficLight.values()) { System.out.println(e.nombre());