1.枚举类型编写类
package EnumTest; public enum FoodSelect { DESERT(1,"甜点"), DRINK(2,"饮料"), NOODLES(3,"面条"); private int code; private String name; private FoodSelect(int code,String name){ this.code = code; this.name = name; } public int getCode(){ return code; } public String getName(){ return name; } public void setCode(int code){ this.code = code; } public void setName(String name){ this.name = name; } public String toString(){ return this.getName() + "--" + this.getCode(); } }
直接在类名那里标记这是个enum,然后可以写上相关的种类
并且在下面可以定义方法,定义常量等
并要写上构造器
在枚举的几种类型旁边需要用小括号标注下面会定义的常量的标号,如这里是code和name
主方法中:
package EnumTest; public class Test { public static void main(String[] args) { System.out.println(FoodSelect.DESERT.getCode()); System.out.println(FoodSelect.DRINK.getName()); } }
结果为:
1
饮料
2.枚举还可以实现接口
例如:
package enumTest; public interface DayInterface { public String getDay(); }
package enumTest; public enum MyDay implements DayInterface{ MONDAY(1,"星期一"),THUSDAY(2,"星期二");//这个后面必须有分号 private int code; private String name; private MyDay(int code,String name) { this.code = code; this.name = name(); } public int getCode() { return code; } public String getName() { return name; } public void setCode(int code) { this.code = code; } public void setName(String name) { this.name = name; } @Override public String toString() { // TODO Auto-generated method stub return this.getName()+"---"+this.getCode(); } @Override public String getDay() { return this.getName(); } }
测试:
package enumTest; public class Test { public static void main(String[] args) { System.out.println(MyDay.THUSDAY.getDay()); } }
结果:
THUSDAY
3.还可以使用接口组织枚举
package enumTest; public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }
测试类:
package enumTest; import enumTest.Food.Coffee; import enumTest.Food.Dessert; public class Test { public static void main(String[] args) { for (Dessert dessertEnum : Food.Dessert.values()) { System.out.print(dessertEnum + " "); } System.out.println(); //我这地方这么写,是因为我在自己测试的时候,把这个coffee单独到一个文件去实现那个food接口,而不是在那个接口的内部。 for (Coffee coffee : Food.Coffee.values()) { System.out.print(coffee + " "); } System.out.println(); //搞个实现接口,来组织枚举,简单讲,就是分类吧。如果大量使用枚举的话,这么干,在写代码的时候,就很方便调用啦。 //还有就是个“多态”的功能吧, Food food = Food.Dessert.CAKE; System.out.println(food); food = Coffee.BLACK_COFFEE; System.out.println(food); } }
结果:
FRUIT CAKE GELATO
BLACK_COFFEE DECAF_COFFEE LATTE CAPPUCCINO
CAKE
BLACK_COFFEE
原文:https://www.cnblogs.com/DiamondDavid/p/14518639.html