- 締切済み
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)のよな使い方 をしなくなるのでしょうか。 いつどのような使い方するのか、どなたかご教示ください。 また、私のようなものに、合うようなサイトがあれば、教えてください。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- jikankou
- ベストアンサー率38% (42/108)
enum はかなり面白いですよ。 型の安全性は#1さんの言っている通りかと思います。 でどのような使い方をするのか書いてみようとしましたが、 かなりいろいろ実験をされているので下記のURLでやっているので 参考になるかと思います。私が書こうとした以上のことをしてい るのでかなり参考になりました・・・。enumは分かるとかなり 使える道具ですね・・・思ったよりも。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
例えば、 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; とかのように使うでしょう。 そういう意味でなくなったりはしません。