Maison > Java > javaDidacticiel > Explication détaillée de l'énumération JAVA (enum)

Explication détaillée de l'énumération JAVA (enum)

Guanhui
Libérer: 2020-07-18 17:35:25
avant
3212 Les gens l'ont consulté

Explication détaillée de l'énumération JAVA (enum)

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; 
}
Copier après la connexion

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);
  }
}
Copier après la connexion

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);
  }
}
Copier après la connexion

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();
}
Copier après la connexion

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);
  }
 }
}
Copier après la connexion

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;
  }
 }
}
Copier après la connexion

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 :

    values() renvoie toutes les valeurs de l'énumération classe. La méthode
  • ordinal() peut trouver l'index de chaque constante d'énumération, tout comme un index de tableau.
  • La méthode valueOf() renvoie la constante d'énumération de la valeur de chaîne spécifiée.
  • 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"));
      }
    }
    Copier après la connexion
Le résultat de sortie de l'exécution du code ci-dessus est :

ROUGE à l'index 0

VERT à 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();
  }
}
Copier après la connexion
Le résultat de l'exécution du code ci-dessus est :

Constructeur appelé pour : ROUGE

Constructeur appelé pour : VERT
Constructeur appelé pour : BLEU
ROUGE
Couleur universelle

Tutoriel recommandé : "

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal