Maison  >  Article  >  Java  >  qu'est-ce que l'énumération Java

qu'est-ce que l'énumération Java

藏色散人
藏色散人original
2019-11-09 11:06:366338parcourir

qu'est-ce que l'énumération Java

Qu'est-ce qu'une énumération Java ?

La définition et l'utilisation des énumérations Java

1 La définition de l'énumération :

L'énumération est A. Type de données spécial.La raison pour laquelle il est spécial est qu'il s'agit d'un type de classe mais qu'il a plus de contraintes spéciales que le type.Cependant, l'existence de ces contraintes rend également le type d'énumération simple, sûr et pratique. Pour créer un type d'énumération, utilisez le mot-clé enum, ce qui implique que les types créés sont des sous-classes de la classe java.lang.Enum (java.lang.Enum est une classe abstraite). Le type d'énumération est conforme au modèle général Class Enum5eaf204136788f9453aa5ddf6b5cc332>, où E représente le nom du type d'énumération. Chaque valeur du type énumération est mappée au constructeur protégé Enum(String name, int ordinal), où le nom de chaque valeur est converti en chaîne et le paramètre ordinal représente l'ordre dans lequel ce paramètre est créé.

2. Utilisation de l'énumération :

Créer une classe d'énumération : EnumTest

public enum EnumTest {
//星期一,星期二,星期三,星期四,星期五,星期六
MON(1), TUE(2),WED(3),THU(4),FRI(5),SAT(6){
public boolean isRest(){
return true;
}
},
//星期日
SUN(0){
public boolean isRest(){
return true;
}
};
private int value;
private  EnumTest(int value){
this.value=value;
}
public int getValue(){
return value;
}
public boolean isRest(){
return  false;
}
}

Utiliser la classe d'énumération EnumTest :

public class EnumMain {
public static void main(String[] args) {
for (EnumTest enumTest : EnumTest.values()) {
System.out.println(enumTest + ":" + enumTest.getValue());
}
System.out.println("---------------我是分割线------------");
EnumTest test = EnumTest.SAT;
switch (test) {
case MON:
System.out.println("今天是星期一");
break;
case TUE:
System.out.println("今天是星期二");
break;
case WED:
System.out.println("今天是星期三");
break;
case THU:
System.out.println("今天是星期四");
break;
case FRI:
System.out.println("今天是星期五");
break;
case SAT:
System.out.println("今天是星期六");
break;
case SUN:
System.out.println("今天是星期日");
break;
default:
System.out.println(test);
break;
}
}
}

Résultat :

MON:1
TUE:2
WED:3
THU:4
FRI:5
SAT:6
SUN:0

---------------Je suis la ligne de démarcation------------

Aujourd'hui est samedi

3. Avantages et inconvénients des énumérations :

Avant l'émergence des énumérations, si vous vouliez représenter un ensemble spécifique de valeurs discrètes, vous en utilisiez souvent. constantes. Par exemple :

public class Entity {
 
 
public static final int VIDEO = 1;//视频
 
public static final int AUDIO = 2;//音频
 
public static final int TEXT = 3;//文字
 
public static final int IMAGE = 4;//图片
 
 
private int id;
 
private int type;
 
 
public int getId() {
 
return id;
 
}
 
public void setId(int id) {
 
this.id = id;
 
}
 
public int getType() {
 
return type;
 
}
 
public void setType(int type) {
 
this.type = type;
 
}

4. Inconvénients de l'utilisation de cette méthode constante :

1. Le code a une mauvaise lisibilité et convivialité, en raison de setType Les paramètres de la méthode () sont de type int,

2. Tapez unsafe. Lorsque l'utilisateur appelle, les types doivent être totalement cohérents et la plage de valeurs doit être correcte. Comme setType(-1); c'est légal, mais pas raisonnable, et cela posera divers problèmes au programme à l'avenir.

3. Couplage élevé et faible évolutivité. Si, pour une raison quelconque, la valeur d'une constante dans la classe Entity doit être modifiée, ce n'est pas une blague si la modification est manquée alors qu'elle est nécessaire.

Les énumérations sont nées pour ce problème. Ils donnent la possibilité de comparer un terme arbitraire avec un autre.

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
Article précédent:qu'est-ce que la classe JavaArticle suivant:qu'est-ce que la classe Java