Пример перечислений java: ValueOf, toString, Switch, compareTo

Тип enum  на Java  — это специальный тип данных, который позволяет объявлять константные переменные. В Java ключевым словом объявления для перечислимого типа является enum.

Пример enum

Мы хотим объявить переменную перечисления с пятью поисковыми системами:

public enum searchengines{Google, Yahoo, Bing, Exhead, Baidu}; 
Запятая в конце необязательна, обе записи легальны.
Вы можете получить доступ к константам:

enginesSearch engine =  поисковые системы.Google; 
Все перечисления наследуются от class java.lang.Enum потому что класс может наследоваться только от одного родителя, но от нескольких интерфейсов.

Перечислимый тип является мощным инструментом. Так как он определяет класс или интерфейс, мы можем помещать в него методы и атрибуты. По умолчанию компилятор добавляет такие методы, как values() который возвращает массив, содержащий значения в том порядке, в котором они объявлены.

Просмотрите итерацию for

Статический метод values() полезен в случае сканирования, например:

for(  Поисковые системы  Двигатель:  searchengines.values()) {
      System.out.println(движок);
}

Атрибуты и методы

Тип перечисления может содержать конструкторы, методы, переменные и константы. Вы можете инициализировать константы значением, которое должно быть передано в качестве аргумента в конструкторе.

public class EnumExample {

public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f); < > частных посетителей поплавков;

private searchengines(float visitors) {
this.visitors = visitors;
}
}

public static void main(String[] args) {
for( поисковые системы: searchengines.values()) {
System.out.println("Поисковая система: "+engine+"
посетителей: "+engine.visitors+" millions");
}
}
}
Output:

Поисковая система: Посетители Google: 160.0 млн
Поисковая система: Yahoo посетителей: 66.4 млн
Поисковая система: Bing посетителей: 7.0 млн
Поисковая система: Baidu посетителей: 66,0 млн
Поисковая система: Спросите посетителей: 4,6 млн
Константы объявлены  static и final и не могут быть изменены после их создания.

Сравнение равенства между двумя перечислениями

Сравнение выполняется с помощью метода equals() или с оператором '==', и оба дают один и тот же результат, поэтому у вас есть возможность выбрать.

google search engines = searchengines.Google; 
if(google.equals(GoogleSearchengines))
System.out.println("сравнение с равными");
if(google == searchengines.Google)
System.out.println("сравнение с ==");

Инструкция Switch

public class EnumExample{

public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f); < > частных посетителей поплавков;

private searchengines(float visitors) {
this.visitors = visitors;
}
}

Название поисковой системы;

EnumExample(Searchengines name){
this.name=name;
}

public void slogan() {
switch (name) {
Google:
System.out.println("Не будь злобным, не делай зла"); < /> поместье;
box Yahoo:
System.out.println("Yahoo! It's You. Вы Yahoo?"); < /> поместье;
box Bing:
System.out.println("Bing предназначен для дела."); < /> поместье;
box Baidu:
System.out.println("Baidu лучше знает китайский"); < /> поместье;
box Ask:
System.out.println("Какой у вас вопрос?"); < /> поместье;
}
}

public static void main(String[] args) {
Google Example = new ExampleNumber(SearchEngines.Google);
google.slogan();
Пример перечисления yahoo = new Пример перечисления(Searchengines.Yahoo);
yahoo.slogan();
Пример Num bing = new SampleNum(SearchEngines.Bing);
bing.slogan();
Пример перечисления Baidu = новый пример перечисления Baidu (SearchEngines.Baidu);
baidu.slogan();
EnumExample ask = new EnumExample(Searchengines.Ask);
ask.slogan();
}
}
Вы не можете создать экземпляр enum с ключевым словом new, потому что конструктор объявлен  Частный  и создается во время выполнения. Даже если вы не установите его в private, он все равно будет считаться private.

toString и ValueOf

toString возвращает имя константы:

System.out.println(yahoo.toString());
Функция valueOf() выполняет обратную обработку метода toString(), мы даем ему имя, и он возвращает константу:

System.out.println(yahoo.valueOf("Yahoo")); 

compareTo

Эта функция используется для сравнения двух перечислений и возвращает -1, 0, 1, если этот объект меньше, равен или больше соответственно.

System.out.println(google.compareTo(yahoo)); 
Консоль показывает -1, потому что "google" объявлен перед "yahoo".

Что запомнить:
  • Простое объявление констант и связанных с ними значений.
  • перечисления  Наследуется от java.lang.Enum.
  • Перечисления не могут реализовывать interfaces.
  • Enumerations  <Методы и переменные не могут быть объявлены так, как в .
  • ><>
  • Переменные и конструкторы объявляются private.
  • Разрешить сравнение двух перечислений с помощью метода compareTo().
  • Les  Перечисления  используются с оператором Switch.
References: