enumの利用
enumを本格的に使ってみた!
なかなか便利ですねぇ・・・
abstract classみたいな感じで実装できる?
定数に内部でコンストラクタを用意できるので、初期化処理もできるし。
ここでちょっとそのときのポイントをメモ
・初期化処理で利用する変数はprivate finalで定義。
・内部定数(配列含む)はprivate (static) finalで定義。
・公開するメソッドをpublicで実装。
・内部で使う関数はprivate (static)で実装。
たとえば以下のように
public enum TestEnum { Test1(1), Test2(2), Test3(3); private final int index_; TestEnum(int index) { index_ = index; } public int getIndex() { return index_; } public boolean isTest1() { return compare(Test1.index_); } public boolean isTest2() { return compare(Test2.index_); } private boolean compare(int index) { return index_ == index; } }
使う側はこんなの
public class Test { public static void main(String[] args) { TestEnum te = TestEnum.Test1; System.out.println(te.getIndex()); System.out.println(te.isTest1()); System.out.println(te.isTest2()); TestEnum te2 = TestEnum.Test2; System.out.println(te2.getIndex()); System.out.println(te2.isTest1()); System.out.println(te2.isTest2()); } }
で結果は
1 true false 2 false true
こんな感じかな。。。
すごく意味ない上に見にくいソースなのはご愛嬌ってことで^^;