枚举类型-enum使用

 枚举就是要让某个类型的取值只能为若干个固定值中的一个,否则编译器就会报错。枚举类型可以让编译器在编译的时候控制源程序中填写的非法值。

eg:

public class EnumTest { public enum Color { red, green, yellow // 定义一个枚举类,其中每个元素都是该类的实例对象。 } // 带有自定义方法的枚举类定义 public enum Color2 { red, green, yellow; // 注意:这里有分号。 // 自定义方法 public static Color2 getColor(String s) { if (s.equals("red flag")) { return red; } else if (s.equals("green flag")) { return green; } else { return yellow; } } } public enum Vericle { bus(0.000044), subway(0.00009), airportExpress(0.000072), express(0.000062), slow(0.00004); public double speed; private Vericle(double speed){ this.speed = speed; } }; public static void main(String[] args) { Color color = Color.red; // 枚举重写了toString(),有name,和oradinal常用方法。 System.out.println(color); System.out.println(color.name()); System.out.println(color.ordinal());// 顺序 // 枚举类自带的静态方法。values() 枚举数组,valueOf(String s) 把字符串转换为枚举对象 Color[] colors = Color.values(); for (Color col : colors) { System.out.println(col.name()); } System.out.println(Color.valueOf("red")); //取Vericle 类的值 double speed = Vericle.subway.speed; // 测试带有自定义方法的枚举类 Color2 color2 = Color2.getColor("red flag"); System.out.println(color2); // 枚举和switch 结合 Color colorState = Color.green; switch (colorState) { case red: System.out.println("red"); break; case green: System.out.println("green"); break; case yellow: System.out.println("yellow"); break; } // EnumSet 使用 EnumSet colorSet = EnumSet.allOf(Color.class); System.out.println("EnumSet:"); for (Color c : (EnumSet<Color>) colorSet) { System.out.println(c.name()); } // EnumMap 使用 EnumMap colorMap = new EnumMap(Color.class); colorMap.put(Color.red, "red value"); colorMap.put(Color.green, "green Value"); System.out.println("EnumMap:"); for (Color cMap : Color.values()) { System.out.println(cMap + ":" + colorMap.get(cMap)); } } }

你可能感兴趣的:(枚举类型-enum使用)