Maison  >  Article  >  Java  >  Explication détaillée de l'utilisation du type d'énumération Java enum

Explication détaillée de l'utilisation du type d'énumération Java enum

hzc
hzcoriginal
2020-06-17 15:18:1615961parcourir

Explication détaillée de l'utilisation du type d'énumération Java enum

JDK1.5 introduit un nouveau type : l'énumération. Bien qu'il s'agisse d'une "petite" fonction en Java, elle apporte une "grande" commodité à mon développement.

Frère, j'ajouterai ma propre compréhension pour vous aider à comprendre.

Utilisation 1 : Constantes

Avant JDK1.5, nous définissions les constantes comme : public static final.... . Eh bien, avec les énumérations, les constantes associées peuvent être regroupées dans un type d'énumération, et les énumérations fournissent plus de méthodes que de constantes.

Code Java

public enum Color {    RED, GREEN, BLANK, YELLOW  }

Utilisation 2 : switch

L'instruction switch avant JDK1.6 ne prend en charge que les types int, char, enum, en utilisant des énumérations, peut rendre notre code plus lisible.

Code Java

enum Signal {      
    GREEN, YELLOW, RED  
}  
public class TrafficLight {      
    Signal color = Signal.RED;
          public void change() { 
             switch (color) { 
               case RED:  
               color = Signal.GREEN;    
                 break;   
                 case YELLOW:              
                 color = Signal.RED;              
                     break;          
                 case GREEN:              
                 color = Signal.YELLOW;              
                     break;          
       }      
     }  
}

Utilisation 3 : Ajouter de nouvelles méthodes à l'énumération

Si vous envisagez de personnaliser votre propre méthode, vous devez l'ajouter à l'instance enum Ajoutez un point-virgule à la fin de la séquence. Et Java exige que l'instance enum soit définie en premier.

Code Java

public enum Color {      
  RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);      
  // 成员变量 
  private String name;      
  private int index;      
  // 构造方法     
  private Color(String name, int index) {        
  this.name = name;         
  this.index = index;     
 } 
 // 普通方法     
  public static String getName(int index) {        
     for (Color c : Color.values()) {              
           if (c.getIndex() == index) {                 
                 return c.name; 
      }          
   } 
    return null;     
 } 
 // get set 方法     
     public String getName() {       
        return name;
      } 
     public void setName(String name) {    
           this.name = name; 
     }      
     public int getIndex() {      
         return index; 
     }      
     public void setIndex(int index) { 
         this.index = index; 
     }  }  
}

Utilisation 4 : Remplacement des méthodes d'énumération

Ce qui suit est un exemple de remplacement de la méthode toString().

Code Java

public enum Color {    
  RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);      
  // 成员变量      
  private String name;      
    private int index;      
    // 构造方法     
    private Color(String name, int index) { 
        this.name = name;
        this.index = index; 
     }      
//覆盖方法      @Override      
    public String toString() {       
   return this.index+"_"+this.name;
  }  
 }

Utilisation 5 : Implémenter l'interface

Toutes les énumérations héritent de la classe java.lang.Enum. Puisque Java ne prend pas en charge l’héritage multiple, les objets d’énumération ne peuvent pas hériter d’autres classes.

Code Java

public interface Behaviour {      
    void print();      
    String getInfo(); 
}  
public enum Color implements Behaviour{ 
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);     
       // 成员变量   
    private String name;      
        private int index;      
        // 构造方法      
        private Color(String name, int index) { 
           this.name = name; 
       this.index = index;     
    } 
 //接口方法      
         @Override      
         public String getInfo() {
           return this.name; 
     }     
 //接口方法     
         @Override      
         public void print() {
          System.out.println(this.index+":"+this.name);
      }  
  }

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!

Déclaration:
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