2012年1月31日火曜日

【重点】Enum型の使い方【初心者向け】

Enum型って便利ー!って声を聞いてはいたものの、その使い方があまりよくわかっていませんでした。

で、今日もEffectiveJavaを読んだわけですよ。
でで、そのまとめ。
#下の例は友達が固定数いて変更は基本無しってことにしておいてね。

public enum Friends{
      JAPANESE(100),
      AMERICAN(50);

      private static final amount;

      Friends(int amount){
            this.amount = amount;
      }

}

まず、JAPANESEとかの後に書いてある数字。これがよくわからなかったけど、コンストラクタに渡す引数なんですね。

だから、コンストラクタの引数は1つ。
JAPANESE(100, 50)みたいに2つであれば、引数は2つになる感じ。

まあ、本当は固定の数字入れないと行けないんだけど、良いのが思いつかないので、取りあえず下に例を書く。

public enum Friends{

      JAPANESE(100, 70, 30),
      AMERICAN(50, 35, 15);

      private static final amount;
      private static final men;
      private static final women;

      Friends(int amount, int men, int women){
            this.amount = amount;
            this.men = men;
            this.women = women;
      }

}

みたいな感じ。
これで、Client側は、Friends.JAPANESE.womenってすれば、30ってでる感じ。

で、他にもちょっとだけ。
取りあえず、
「Friends.ordinary()」は禁止。序数使って管理してる時点で間違い。非推奨って書いてあるみたい。

あとは、固定定数メソッド実装ってのが便利。
もう眠いので、これは後ほど時間があれば書きます。