Как перечисление, которое мы получаем из java 1.5, отличается от C++ и другого обычного типа Enum.Как Java Enum отличается от C++ и обычного обычного Enum?
ответ
В java перечислениях находятся сложные объекты, а на C++ каждый объект перечисления связан с одним целочисленным значением. В Java вы можете иметь несколько атрибутов, ассоциированные с одним значением перечисления:
enum MyCategory {
SPORT("The sport category", "sport.png"),
NEWS("the news category", "news.jpg");
private String description;
private String iconPath;
private MyCategory(String description, String iconPath) {
this.description = description;
this.iconPath = iconPath;
}
public String getDescription() {
return description;
}
public String getIconPath() {
return iconPath;
}
}
Кроме того, в Java вы можете switch
только числовые типы, струнный и перечисления. Однако я не могу экстраполировать обычных перечислений в целом ...
EDIT Еще одна вещь, которую Java перечислений можно сделать, это объявить за значение операции (взято из java tutorial):
public enum Operation {
PLUS { double eval(double x, double y) { return x + y; } },
MINUS { double eval(double x, double y) { return x - y; } },
TIMES { double eval(double x, double y) { return x * y; } },
DIVIDE { double eval(double x, double y) { return x/y; } };
// Do arithmetic op represented by this constant
abstract double eval(double x, double y);
}
Java язык программирования enums
гораздо более эффективны, чем их коллеги на других языках, которые представляют собой нечто большее, чем прославленные целые числа. Новое объявление enum определяет полноценный класс (называемый типом перечисления). В дополнение к решению всех проблем (Не типизированного, Нет пространства имен, хрупкость и печатные значения неинформативные), которая существует со следующими int Enum pattern
, которая использовалась до Java 5.0:
public static final int SEASON_WINTER = 0;
также позволяет добавлять произвольное методы и поля для типа перечисления, для реализации произвольных интерфейсов и т. д. Типы Enum обеспечивают высококачественные реализации всех методов Object. Они являются Comparable
и Serializable
, а серийная форма предназначена для противостояния произвольным изменениям типа перечисления.
Подробнее читайте в статье Java Enums.
- 1. Использовать флаги Enum в качестве обычного Enum
- 2. Как распаковка кортежа отличается от обычного назначения?
- 3. Как торт PHP отличается от обычного PHP
- 4. Как яйцо питона отличается от обычного пакета?
- 5. Почему бинарная Guids отличается от обычного представления
- 6. почему ДИВ и уль ширина и высота отличается от обычного
- 7. Как скелетная реализация отличается от обычного абстрактного класса?
- 8. Как внутреннее соединение отличается от обычного выбора нескольких таблиц?
- 9. Как вызов делегата отличается от обычного вызова метода?
- 10. Как сетевой анализ облака отличается от обычного сетевого анализа?
- 11. C# «Enum» по методу и параметру «enum»
- 12. Как тестировать api от обычного тестирования?
- 13. Как определить Enum внутри enum в Java
- 14. Java Enum как общий тип в Enum
- 15. Отличается ли Wamp Server от обычного интернет-провайдера?
- 16. Почему тип параметра ref отличается от обычного типа?
- 17. Deserialize java enum от JSON
- 18. Что делает «pub run» отличается от обычного исполнения?
- 19. Запись Unicode в HTML-файл отличается от обычного файла
- 20. Oracle SYS_REFCURSOR от обычного SQL
- 21. Почему typedef для указателя функции отличается от обычного typedef?
- 22. SVN пост-исполнение командного сценария отличается от обычного исполнения
- 23. Поведение отладки отличается от обычного исполнения в python
- 24. Java и enum [Новичок]
- 25. ENUM и радиолюбители Java
- 26. Java Enum
- 27. Получить упорядоченный словарь от обычного
- 28. Enum of Enum NULL
- 29. Эмуляция ++ Enum C в Java
- 30. C# generic enum cast to specific enum
Вы имеете в виду перечисления в UML с «обычным типом перечисления»? – belgther
Существует очень хорошее описание типа ENUM на разных языках в [Wikipedia] (http://en.wikipedia.org/wiki/Enumerated_type#C_and_syntactically_similar_languages) –