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:
Javadoc:  Enumerationstypen
Wikibooks: Java Programming/Enumerations
http://javarevisited.blogspot.com/2011/08/enum-in-java-example-tutorial.html