• 締切済み

enumについて

Java2 5.0で「enum」という列挙型が導入されてそうですが、 意味がよくわかりません。 今までは、interface等に (1) public final static int a = 0; public final static int b = 1; public final static int c = 2; などと、指定してきましたが、enumを使う事で、型に”安全”に なると書かれていますが、それもよくわかりません。 ”列挙値は、整数ではない”とも見たりしますが、(1)のよな使い方 をしなくなるのでしょうか。 いつどのような使い方するのか、どなたかご教示ください。 また、私のようなものに、合うようなサイトがあれば、教えてください。 宜しくお願いします。

みんなの回答

  • jikankou
  • ベストアンサー率38% (42/108)
回答No.2

enum はかなり面白いですよ。 型の安全性は#1さんの言っている通りかと思います。 でどのような使い方をするのか書いてみようとしましたが、 かなりいろいろ実験をされているので下記のURLでやっているので 参考になるかと思います。私が書こうとした以上のことをしてい るのでかなり参考になりました・・・。enumは分かるとかなり 使える道具ですね・・・思ったよりも。

参考URL:
http://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/TypesafeEnum/TypesafeEnum.html
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

例えば、 enum MyTypes { A, B, C }; の様に使います。 後は、適当なスコープで、A,B,C それぞれが、定数名のような感じで使えます。 >enumを使う事で、型に”安全”になる 関数(A); 等とする時、 final static int A = 0 ; のようになっていたら、 関数(0); で同じ動作になってしまいますが、 それは、望まない動作なのかも知れません。 関数(enum 型); なら、型でチェックされるので、 関数(0); のような望まないものを排除できます。 (ということとかかな?) >”列挙値は、整数ではない”とも見たりしますが、 列挙型は、序数という形で順番の位置を持っていますが、 整数ではなくて、(内部的にどのように表現されているかには関係なく)種類を表すと考えるといいと思います。 >(1)のよな使い方をしなくなるのでしょうか。 例えば、円周率のようなモノ文字通り"定数"ですから public final static double pi = 3.14159265358979323; とかのように使うでしょう。 そういう意味でなくなったりはしません。