L'énumération Java est une classe spéciale qui représente généralement un ensemble de constantes, telles que les 4 saisons d'une année, les 12 mois d'une année, les 7 jours d'une semaine et la direction est sud-est, nord-ouest, etc.
Les classes d'énumération Java sont définies à l'aide du mot-clé enum, et chaque constante est séparée par des virgules.
Par exemple, définissez une classe d'énumération de couleurs.
enum Color { RED, GREEN, BLUE; }
Les constantes de couleur de la classe d'énumération ci-dessus Color incluent ROUGE, VERT et BLEU, qui représentent respectivement le rouge, le vert et le bleu.
Exemple d'utilisation :
enum Color { RED, GREEN, BLUE; } public class Test { // 执行输出结果 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } }
Le résultat de l'exécution du code ci-dessus est :
RED
Utilisation d'énumérations dans les classes internes Énumération
les classes d'énumération peuvent également être déclarées dans les classes internes :
public class Test { enum Color { RED, GREEN, BLUE; } // 执行输出结果 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } }
Le résultat de l'exécution du code ci-dessus est :
RED
Chaque énumération est implémentée en interne via Class, et toutes les valeurs d'énumération sont publiques statiques finales.
La conversion de couleur de la classe d'énumération ci-dessus est implémentée dans la classe interne :
class Color { public static final Color RED = new Color(); public static final Color BLUE = new Color(); public static final Color GREEN = new Color(); }
Itération des éléments d'énumération
Vous pouvez utiliser l'instruction for pour itérer les éléments d'énumération :
enum Color { RED, GREEN, BLUE; } public class MyClass { public static void main(String[] args) { for (Color myVar : Color.values()) { System.out.println(myVar); } } }
Le résultat de sortie de l'exécution du code ci-dessus est :
ROUGE
VERT
BLEU
Utiliser l'énumération dans la classe d'énumération switch
La classe d'énumération est souvent utilisée dans les instructions switch :
enum Color { RED, GREEN, BLUE; } public class MyClass { public static void main(String[] args) { Color myVar = Color.BLUE; switch(myVar) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } } }
Le résultat de l'exécution du code ci-dessus est :
<🎜 Méthodes >Blue
values(), ordinal() et valueOf()
enum La classe d'énumération définie par défaut hérite de la classe java.lang.Enum et implémente Java. Il existe deux interfaces : lang.Seriablizing et java.lang.Comparable. Les méthodes values(), ordinal() et valueOf() se trouvent dans la classe java.lang.Enum :enum Color { RED, GREEN, BLUE; } public class Test { public static void main(String[] args) { // 调用 values() Color arr[] = Color.values(); // 迭代枚举 for (Color col : arr) { // 查看索引 System.out.println(col + " at index " + col.ordinal()); } // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException System.out.println(Color.valueOf("RED")); // System.out.println(Color.valueOf("WHITE")); } }
ROUGE à l'index 0VERT à l'index 1
BLEU à l'index 2
RED
Membres de la classe d'énumération
Comme les classes ordinaires, les énumérations peuvent utiliser leurs propres variables, méthodes et constructeurs. Le constructeur ne peut utiliser que le modificateur d'accès privé. On ne peut donc pas l'appeler de l'extérieur. Les énumérations peuvent contenir à la fois des méthodes concrètes et abstraites. Si une classe d'énumération possède une méthode abstraite, chaque instance de la classe d'énumération doit l'implémenter.enum Color { RED, GREEN, BLUE; // 构造函数 private Color() { System.out.println("Constructor called for : " + this.toString()); } public void colorInfo() { System.out.println("Universal Color"); } } public class Test { // 输出 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); c1.colorInfo(); } }
Constructeur appelé pour : ROUGETutoriel recommandé : "Constructeur appelé pour : VERT
Constructeur appelé pour : BLEU
ROUGE
Couleur universelle
Tutoriel Java"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!