Exemple des énumérations java: ValueOf, toString, Switch, compareTo
Der Typ enum in Java ist ein spezieller Datentyp, mit dem Sie konstante Variablen deklarieren können. In Java lautet das Deklarationsschlüsselwort für einen Aufzählungstyp enum.Beispiel für enum
Wir möchten eine Enumerationsvariable mit fünf Suchmaschinen deklarieren:
public enum searchengines{Google, Yahoo, Bing, Exhead, Baidu};Das Komma am Ende ist optional, beide Schreibvorgänge sind zulässig.
Sie können auf die Konstanten zugreifen:
enginesSearch engine = Suchmaschinen.Google;Alle Enumerationen erben von der class java.lang.Enum da eine Klasse nur von einem Elternteil, sondern von mehreren Schnittstellen erben kann.
Der aufgezählte Typ ist ein mächtiges Werkzeug da es eine Klasse oder eine Schnittstelle definiert, in die wir Methoden und Attribute einfügen können. Standardmäßig fügt der Compiler Methoden wie values() die ein Array zurückgibt, das die Werte in der Reihenfolge enthält, in der sie deklariert wurden.
Durchsuchen Sie mit der forDie statische Methode values() ist im Falle eines Scans nützlich, zum Beispiel:
for( Suchmaschinen Motor: searchengines.values()) {
System.out.println(Motor);
}
Attribute und Methoden
Ein Enumerationstyp kann Konstruktoren, Methoden, Variablen und Konstanten enthalten. Sie können Konstanten mit dem Wert initialisieren, der als Argument in einem Konstruktor übergeben werden soll.
public class EnumExample {
public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
private Floßbesucher;
private Suchmaschinen(Float-Besucher) {
this.visitors = Besucher;
}
}
public static void main(String[] args) {
for( suchmaschinen: searchengines.values()) {
System.out.println("Suchmaschine: "+engine+"
visitors: "+engine.visitors+" millions");
}
}
}
Output:
Suchmaschine: Google-Besucher: 160,0 Millionen
Suchmaschine: Yahoo-Besucher: 66,4 Millionen
Suchmaschine: Bing-Besucher: 7,0 Millionen
Suchmaschine: Baidu-Besucher: 66,0 Millionen
Suchmaschine: Besucher fragen: 4,6 Millionen
Konstanten werden deklariert static und final und können nach ihrer Erstellung nicht mehr geändert werden.
Der Gleichheitsvergleich zwischen zwei Aufzählungen
Der Vergleich erfolgt mit der Methode equals() oder mit dem Operator '==' und beide ergeben das gleiche Ergebnis, so dass Sie die Möglichkeit haben, zu wählen.
google search engines = searchengines.Google;
if(google.equals(GoogleSearchengines))
System.out.println("Vergleich mit Gleichen");
if(google == searchengines.Google)
System.out.println("Vergleich mit ==");
Die Switch-Anweisung
public class EnumExample{
public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
private Floßbesucher;
private Suchmaschinen(Float-Besucher) {
this.visitors = Besucher;
}
}
Name der Suchmaschine;
EnumExample(Name der Suchmaschinen){
this.name=name;
}
public void slogan() {
switch (name) {
Google:
System.out.println("Sei nicht bösartig, tu nichts Böses");
Nachlass;
box Yahoo:
System.out.println("Yahoo! Du bist es. Machst du Yahoo?");
Nachlass;
box Bing:
System.out.println("Bing ist zum Tun.");
Nachlass;
box Baidu:
System.out.println("Baidu kann Chinesisch besser");
Nachlass;
Feld Ask:
System.out.println("Was ist Ihre Frage?");
Nachlass;
}
}
public static void main(String[] args) {
Google Example = new ExampleNumber(SearchEngines.Google);
google.slogan();
Beispiel enum yahoo = new Beispiel Enum(Searchengines.Yahoo);
yahoo.slogan();
Beispiel Num bing = new SampleNum(SearchEngines.Bing);
bing.slogan();
Baidu-Beispiel-Aufzählung = new Baidu-Beispiel-Aufzählung(SearchEngines.Baidu);
baidu.slogan();
EnumExample ask = new EnumExample(Searchengines.Ask);
ask.slogan();
}
}
Sie können keine Instanz von enum mit dem Schlüsselwort new erstellen, da der Konstruktor deklariert ist Privat und wird zur Laufzeit erstellt. Auch wenn Sie es nicht auf privat setzen, wird es immer noch als privat betrachtet.
toString und ValueOf
toString gibt den Namen der Konstante zurück:
System.out.println(yahoo.toString());
Die Funktion valueOf() führt die umgekehrte Verarbeitung der Methode toString(), geben wir ihm den Namen und es gibt die Konstante zurück:
System.out.println(yahoo.valueOf("Yahoo"));
compareTo
Diese Funktion wird verwendet, um zwei Aufzählungen zu vergleichen und gibt -1, 0, 1 zurück, wenn dieses Objekt kleiner, gleich oder größer ist.
System.out.println(google.compareTo(yahoo));
Die Konsole zeigt -1 an, da "google" vor "yahoo" deklariert wird.
Was zu beachten ist:
- Einfache Deklaration von Konstanten und zugehörigen Werten.
- Aufzählungen Erbt von der java.lang.Enum.
- Enumerations können keine Schnittstellen implementieren.
- Enumerations
><>Variablen und Konstruktoren werden als privat deklariert. - Erlauben Sie den Vergleich zweier Aufzählungen mit der Methode compareTo().
- Les Aufzählungen werden mit der Switch.
References:
System.out.println(Motor);
}
public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
private Floßbesucher;
private Suchmaschinen(Float-Besucher) {
this.visitors = Besucher;
}
}
public static void main(String[] args) {
for( suchmaschinen: searchengines.values()) {
System.out.println("Suchmaschine: "+engine+"
visitors: "+engine.visitors+" millions");
}
}
}
Suchmaschine: Yahoo-Besucher: 66,4 Millionen
Suchmaschine: Bing-Besucher: 7,0 Millionen
Suchmaschine: Baidu-Besucher: 66,0 Millionen
Suchmaschine: Besucher fragen: 4,6 Millionen
if(google.equals(GoogleSearchengines))
System.out.println("Vergleich mit Gleichen");
System.out.println("Vergleich mit ==");
public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
private Floßbesucher;
private Suchmaschinen(Float-Besucher) {
this.visitors = Besucher;
}
}
Name der Suchmaschine;
EnumExample(Name der Suchmaschinen){
this.name=name;
}
public void slogan() {
switch (name) {
Google:
System.out.println("Sei nicht bösartig, tu nichts Böses");
Nachlass;
box Yahoo:
System.out.println("Yahoo! Du bist es. Machst du Yahoo?");
Nachlass;
box Bing:
System.out.println("Bing ist zum Tun.");
Nachlass;
box Baidu:
System.out.println("Baidu kann Chinesisch besser");
Nachlass;
Feld Ask:
System.out.println("Was ist Ihre Frage?");
Nachlass;
}
}
public static void main(String[] args) {
Google Example = new ExampleNumber(SearchEngines.Google);
google.slogan();
Beispiel enum yahoo = new Beispiel Enum(Searchengines.Yahoo);
yahoo.slogan();
Beispiel Num bing = new SampleNum(SearchEngines.Bing);
bing.slogan();
Baidu-Beispiel-Aufzählung = new Baidu-Beispiel-Aufzählung(SearchEngines.Baidu);
baidu.slogan();
EnumExample ask = new EnumExample(Searchengines.Ask);
ask.slogan();
}
}
toString und ValueOf
toString gibt den Namen der Konstante zurück:Die Funktion valueOf() führt die umgekehrte Verarbeitung der Methode toString(), geben wir ihm den Namen und es gibt die Konstante zurück:
System.out.println(yahoo.toString());
System.out.println(yahoo.valueOf("Yahoo"));
compareTo
System.out.println(google.compareTo(yahoo));