La classe d'énumération enum a été introduite dans JDK1.5. Auparavant, public static final int enum_value était utilisée à la place de la classe d'énumération. La classe d'énumération enum est une classe spéciale qui hérite par défaut de la classe java.lang.Enum. Comme les autres classes ordinaires, enum peut également avoir des variables membres, des méthodes et des constructeurs, et peut également implémenter une ou plusieurs interfaces. La différence est :
1. S'il y a un constructeur, il doit être décoré avec du privé.
2. Les classes d'énumération ne peuvent pas dériver de sous-classes.
3. Toutes les instances de la classe d'énumération doivent être clairement définies sur la première ligne. Le système ajoutera automatiquement la modification finale statique publique à ces instances sans que les programmeurs aient besoin de les définir explicitement.
4. La classe d'énumération fournit la méthode values() par défaut pour faciliter le parcours de toutes les valeurs d'énumération.
Méthodes en enum (méthodes fournies par Enum) :
public final int compareTo(E o) Compare les valeurs d'énumération du même type
public final int ordinal() Renvoie la valeur d'index de l'énumération, en commençant à zéro pour la première valeur de l'énumération.
public final String name() renvoie le nom de l'instance d'énumération
public String toString() renvoie le nom de la sortie de l'énumération
Exemple de feu de circulation
public enum TrafficLight { ROUGE("Rouge"), JAUNE("Jaune"), VERT("Vert"); privé TrafficLight(Nom de la chaîne) { this.name = nom } public String getName() { return nom ; } public void jude(TrafficLight) { switch (light) { case RED : System.out.println("stop"); System.out.println("go"); case GREEN: System.out.println("wait"); default: break; } } public static void main(String[] args) { for (TrafficLight e) : TrafficLight.values()) { System.out.println(e.name() } }}