2016-05-07 3 views
-1

Я недавно узнал, что Enums - это типы данных, подобные int, char и т. Д. Но в Enums мы можем определить наши типы данных. Но мой вопрос в том, что является необходимостью для пользовательских типов данных. Я был бы полезен, если бы был приведен пример сценария реального мира.Реальная реализация Enums

+0

SO - это конкретный вопрос с окончательным ответом. Вы можете предпочесть использовать такой форум, как Quora. Все-таки здесь нетривиальный пример https://github.com/OpenHFT/Chronicle-Wire/blob/master/src/main/java/net/openhft/chronicle/wire/WireType.java –

+2

Каждый новый класс пользовательский тип данных. Ничего нового для Enum ... – mks

+1

Если вам нужен предопределенный список значений, вы должны использовать перечисление, чтобы он стал более понятным и понятным. –

ответ

1

Типы данных пользователя, как строительные блоки. У нас ограниченное количество таких стандартных блоков (например, примитивных типов), поэтому нам нужно расширить их, построив собственные классы. Enum - это класс с предопределенными значениями, которые нельзя изменить.

Например,

public enum ProfessionType { DOCTOR, MANAGER, SELLER; } 

Мы гарантируем, что он будет создавать только один экземпляр DOCTOR, MANAGER и так далее. Представьте, мы собираемся создать врача ввести вручную (в данном случае, ProfessionType класс)

ProfessionType doctor1 = new ProfessionType("doctor"); 
ProfessionType doctor2 = new ProfessionType("doctor"); 

Какой из них лучше? Я доктор doctor1 типа или второго?

1

Тип перечисления - это особый тип данных, который позволяет переменной набор предопределенных констант.

Вот код, который показывает вам, как использовать день перечисления определено выше:

public class EnumTest { 
    Day day; 

    public EnumTest(Day day) { 
     this.day = day; 
    } 

    public void tellItLikeItIs() { 
     switch (day) { 
      case MONDAY: 
       System.out.println("Mondays are bad."); 
       break; 

      case FRIDAY: 
       System.out.println("Fridays are better."); 
       break; 

      case SATURDAY: case SUNDAY: 
       System.out.println("Weekends are best."); 
       break; 

      default: 
       System.out.println("Midweek days are so-so."); 
       break; 
     } 
    } 

    public static void main(String[] args) { 
     EnumTest firstDay = new EnumTest(Day.MONDAY); 
     firstDay.tellItLikeItIs(); 
     EnumTest thirdDay = new EnumTest(Day.WEDNESDAY); 
     thirdDay.tellItLikeItIs(); 
     EnumTest fifthDay = new EnumTest(Day.FRIDAY); 
     fifthDay.tellItLikeItIs(); 
     EnumTest sixthDay = new EnumTest(Day.SATURDAY); 
     sixthDay.tellItLikeItIs(); 
     EnumTest seventhDay = new EnumTest(Day.SUNDAY); 
     seventhDay.tellItLikeItIs(); 
    } 
} 

Выход есть:

Mondays are bad. 
Midweek days are so-so. 
Fridays are better. 
Weekends are best. 
Weekends are best. 

для более подробной информации проверить this учебник.

Смежные вопросы