Java 1.5から得られる列挙型がC++やその他の従来の列挙型とどのように違うのですか?どのようにJava EnumはC++と異なり、従来のEnumと異なりますか?
3
A
答えて
5
java enumは複雑なオブジェクトですが、C++ではすべてのenumオブジェクトが単一の整数値に関連付けられています。 Javaのことができますswitch
数だけの種類、文字列や列挙型にさらに
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では、あなたは、単一の列挙型の値に関連したいくつかの属性を持つことができます。しかし、私は、全体として、従来の列挙型を一般化することはできません... Javaの列挙型が行うことができます
EDITもう一つは、(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);
}
3
のJavaプログラミング言語enums
は他の言語に比べてはるかに強力であり、栄光の整数よりもはるかに強力です。新しいenum宣言は本格的なクラス(enum型と呼ばれます)を定義します。すべての問題解決に加えて、前のJava 5.0に使用されたint Enum pattern
を以下に存在する(型保証はないが、名前空間、脆性及びプリント値が情報価値ません):
public static final int SEASON_WINTER = 0;
それはまた、あなたが任意に追加することができますメソッドとフィールドを列挙型に変換したり、任意のインタフェースを実装したりできます。 Enum型は、すべてのObjectメソッドの高品質な実装を提供します。それらはComparable
とSerializable
であり、シリアル形式は列挙型の任意の変更に耐えるように設計されています。
詳しくはJava Enumsをご覧ください。
関連する問題
- 1. Objective-CにJava enumのようなものはありますか?
- 2. 異なるEnum HashCode生成?
- 3. C++で括弧付きのenum/enumクラスを呼び出すとどうなりますか?
- 4. 異なるEnum型のクラスを直列化するEnum型
- 5. CloudantはCouchDBとどのように異なりますか?
- 6. C++は、異なるテンプレートクラスのenumを関数パラメータとして使用します。
- 7. EnumはどのようにCにメモリを割り当てますか?
- 8. enumの代わりにC#
- 9. saasアプリケーションのコーディングは、従来のWebアプリケーションとどのように異なるのですか?
- 10. Javaでこのようにenumを使用すると何が問題になりますか?上記のコード
- 11. 従属enumのデフォルトとしてベースenumを使用
- 12. Javaのenumの型とサブタイプにどのようにアクセスできますか?
- 13. DynamoDBにenum値の代わりにJava enumのString値を格納します。
- 14. なぜC#のenumインスタンスからenum値にアクセスできないのですか?
- 15. C++では、 "enum class"と "enum"の間でメモリ使用量に違いがありますか?
- 16. バイナリファイルは異なりますが、JVMとは異なりますか?
- 17. JavaのPOSTはアンドロイドのPOSTと異なりますか?
- 18. それはどのようにenum Cの作品ですか?
- 19. Javaの週の数はPythonとPHPと異なります
- 20. enumはどのようにjava型で安全ですか
- 21. 従来のデバイスドライバプログラムとはどのように違いますか?
- 22. 異なる列挙からのenum値を保持するフィールド
- 23. グリーディーファーストサーチはベストファーストサーチと異なりますか?
- 24. インスタントメッセージはJavaのタイムスタンプと異なりますか?
- 25. メソッドの "Enum"と "enum"パラメータ
- 26. VBでenumsエラー、C#でenumとどのように違うのですか?
- 27. StringBuilder AppendとAppendLineはEnumに対して異なる結果を返す
- 28. Java - Enumとスイッチケースステートメントの比較
- 29. バイト配列はC#のWeb APIメソッドと異なりますか?
- 30. .NET JITコンパイラは、異なるenumでパラメータ化されたジェネリックの異なるコードを生成しますか?
"従来の列挙型"のUMLで列挙型を意味しますか? – belgther
[Wikipedia](http://en.wikipedia.org/wiki/Enumerated_type#C_and_syntactically_similar_languages)には、さまざまな言語のENUMタイプの説明があります。 –