enum constant specific method

import java.util.EnumSet;

public class ConstantSpecificMethod {
      private static enum Cycle {
    	  UNDERBODY {
			@Override
			void action() {
				System.out.println("Underbody");
			}
    	  },
    	  WHEELWASH {
			@Override
			void action() {
				System.out.println("Wheelwash");
			}
    	  },
    	  OVERRIDE {
			@Override
			void action() {
				System.out.println("Override");
			}
			/**重寫父類方法**/
			public String toString() {
				return "override";
			}
    	  };
    	  abstract void action();
      }
      EnumSet<Cycle> cycles = EnumSet.of(Cycle.WHEELWASH);
      public void add(Cycle cycle) {
    	  cycles.add(cycle);
      }
      public void print() {
    	  for(Cycle c : cycles) {
    		  c.action();
    	  }
      }
      @Override
    public String toString() {
    	return cycles.toString();
    }
    public static void main(String[] args) {
    	ConstantSpecificMethod csm = new ConstantSpecificMethod();
    	System.out.println(csm);
    	csm.print();
    	csm.add(Cycle.UNDERBODY);
    	csm.add(Cycle.UNDERBODY);
    	csm.add(Cycle.OVERRIDE);
    	/**EnumSet中的排序時按出如今枚舉類中的順序**/
    	System.out.println(csm);//輸出結果:[UNDERBODY, WHEELWASH, override]。。枚舉類默認toString返回的是實例名
    	csm.print();
	}
}
相關文章
相關標籤/搜索