Я недавно узнал, что Enums - это типы данных, подобные int, char и т. Д. Но в Enums мы можем определить наши типы данных. Но мой вопрос в том, что является необходимостью для пользовательских типов данных. Я был бы полезен, если бы был приведен пример сценария реального мира.Реальная реализация Enums
ответ
Типы данных пользователя, как строительные блоки. У нас ограниченное количество таких стандартных блоков (например, примитивных типов), поэтому нам нужно расширить их, построив собственные классы. Enum - это класс с предопределенными значениями, которые нельзя изменить.
Например,
public enum ProfessionType { DOCTOR, MANAGER, SELLER; }
Мы гарантируем, что он будет создавать только один экземпляр DOCTOR
, MANAGER
и так далее. Представьте, мы собираемся создать врача ввести вручную (в данном случае, ProfessionType
класс)
ProfessionType doctor1 = new ProfessionType("doctor");
ProfessionType doctor2 = new ProfessionType("doctor");
Какой из них лучше? Я доктор doctor1
типа или второго?
Тип перечисления - это особый тип данных, который позволяет переменной набор предопределенных констант.
Вот код, который показывает вам, как использовать день перечисления определено выше:
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 учебник.
- 1. Реальная реализация модели домена
- 2. где реальная реализация Int32 in .net-core
- 3. Реальная реализация ajax в веб-сервисе?
- 4. Реальная реализация `partition` для ленивого списка?
- 5. Существует ли реальная реализация ECMAScript, или это просто спецификация?
- 6. deserializing enums
- 7. TryParsing Enums
- 8. Реальная точность данных
- 9. реальная цель фрейма moq
- 10. Дополненная реальная телефонная задержка
- 11. Какова реальная цель application.ini
- 12. Реальная скорость поворота страницы
- 13. Реальная Площадь изображения
- 14. Реальная звездная оценка Угловая
- 15. Какова реальная «точка» указателей?
- 16. PHP ChDir() реальная функциональность
- 17. Реальная кластеризация GMSMapView ios
- 18. Реальная комбинация в Groovy
- 19. Как разрабатывается реальная симуляция?
- 20. Реальная анимация аниматора игры?
- 21. Какова реальная структура указателя?
- 22. Какова реальная цель document.write?
- 23. Bounds.size.width не реальная ширина
- 24. PQ - Function.InvokeAfter() - реальная задержка
- 25. UIScrollView и реальная память
- 26. Ссылка в действии Реальная
- 27. Неявная реальная ошибка
- 28. Какая реальная память используется?
- 29. Jackson: Deserializing enums
- 30. Отступ Xcode с Enums
SO - это конкретный вопрос с окончательным ответом. Вы можете предпочесть использовать такой форум, как Quora. Все-таки здесь нетривиальный пример https://github.com/OpenHFT/Chronicle-Wire/blob/master/src/main/java/net/openhft/chronicle/wire/WireType.java –
Каждый новый класс пользовательский тип данных. Ничего нового для Enum ... – mks
Если вам нужен предопределенный список значений, вы должны использовать перечисление, чтобы он стал более понятным и понятным. –