Heim > Java > JavaBase > Hauptteil

Was ist Java-Enumeration?

藏色散人
Freigeben: 2019-11-09 11:06:36
Original
6450 Leute haben es durchsucht

Was ist Java-Enumeration?

Was ist eine Java-Enumeration?

Die Definition und Verwendung von Java-Aufzählungen

Die Definition der Aufzählung:

Aufzählung ist A Der Grund für die Besonderheit liegt darin, dass es sich um einen Klassentyp handelt, der jedoch speziellere Einschränkungen aufweist. Das Vorhandensein dieser Einschränkungen macht den Aufzählungstyp jedoch auch einfach. Um einen Aufzählungstyp zu erstellen, verwenden Sie das Schlüsselwort enum. Dies impliziert, dass die erstellten Typen Unterklassen der Klasse java.lang.Enum sind (java.lang.Enum ist eine abstrakte Klasse). Der Aufzählungstyp entspricht dem allgemeinen Muster „Class Enum>“, wobei E für den Namen des Aufzählungstyps steht. Jeder Wert des Aufzählungstyps wird dem geschützten Enum(String name, int ordinal)-Konstruktor zugeordnet, wobei der Name jedes Werts in einen String konvertiert wird und die Ordinaleinstellung die Reihenfolge darstellt, in der diese Einstellung erstellt wird.

2. Verwendung der Aufzählung:

Erstellen Sie eine Aufzählungsklasse: 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;
}
}
Nach dem Login kopieren

Verwenden Sie die Aufzählungsklasse 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;
}
}
}
Nach dem Login kopieren

Ergebnis:

MON:1
TUE:2
WED:3
THU:4
FRI:5
SAT:6
SUN:0
Nach dem Login kopieren

---------------Ich bin die Trennlinie------------

Heute ist Samstag

3. Vor- und Nachteile von Aufzählungen:

Wenn Sie vor dem Aufkommen von Aufzählungen einen bestimmten Satz diskreter Werte darstellen wollten, verwendeten Sie oft einige Konstanten. Zum Beispiel:

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;
 
}
Nach dem Login kopieren

4. Nachteile der Verwendung dieser konstanten Methode:

1. Der Code ist aufgrund von setType schlecht lesbar und benutzerfreundlich Die Parameter der ()-Methode sind vom Typ int,

2. Geben Sie unsicher ein. Beim Aufruf durch den Benutzer müssen die Typen vollständig konsistent sein und der Wertebereich muss stimmen. Wie setType(-1); ist zwar legal, aber nicht sinnvoll und wird dem Programm in Zukunft verschiedene Probleme bereiten.

3. Hohe Kopplung und schlechte Skalierbarkeit. Wenn aus irgendeinem Grund der Wert einer Konstante in der Entity-Klasse geändert werden muss, ist es kein Scherz, wenn die Änderung übersehen wird, wenn die Änderung erforderlich ist.

Für dieses Problem wurden Aufzählungen entwickelt. Sie geben die Möglichkeit, einen beliebigen Begriff mit einem anderen zu vergleichen.

Das obige ist der detaillierte Inhalt vonWas ist Java-Enumeration?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage