enum Color { RED, GREEN, BLUE; }
public class Season { public static final Season SPRING = new Season("春天"); public static final Season SUMMER = new Season("夏天"); public static final Season AUTUMN = new Season("秋天"); public static final Season WINTER = new Season("冬天"); private Season(String name){ this.name = name; } private String name; }
enum Season1{ SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天"); private Season1(String name){ this.name = name; } private String name; }
Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf()调用其将返回对应的实例。
package com.kane.demo4; public enum Demo4 { DIYU("使者"); private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Demo4{" + "name='" + name + '\'' + '}'; } Demo4(String name) { this.name = name; } } package com.kane.demo4; public class Main { public static void main(String[] args) { Demo4 demo4 = Demo4.valueOf("DIYU"); System.out.println(demo4); } }
Enum覆载了toString方法,因此我们如果调用枚举类.实例.toString()默认返回字符串,需要重写
package com.kane.demo4; public class Main { public static void main(String[] args) { Demo4 demo4 = Demo4.DIYU; System.out.println(demo4.toString()); } }
Enum的equals也是用==判断两个对象是否相同
package com.kane.demo4; public class Main { public static void main(String[] args) { Demo4 demo4 = Demo4.DIYU; System.out.println(demo4.toString().equals("DIYU")); } }
ordinal() 输出当前枚举类型在类中的顺序
package com.kane.demo4; public class Main { public static void main(String[] args) { Demo4 demo4 = Demo4.DIYU; System.out.println(demo4.ordinal()); } }
values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
package com.kane.demo4; import java.util.Arrays; public class Main { public static void main(String[] args) { Demo4 demo4 = Demo4.DIYU; System.out.println(Arrays.toString(demo4.values())); } } // 输出结果:[Demo4{name='使者'}, Demo4{name='使者'}]
接口实现
interface Love{ void live(); } enum Season1 implements Love{ SPRING("春天"){ @Override public void live() { System.out.println("爱春暖花开"); } },SUMMER("夏天"){ @Override public void live() { System.out.println("爱热情似火"); } },AUTUMN("秋天"){ @Override public void live() { System.out.println("爱秋高气爽"); } },WINTER("冬天"){ @Override public void live() { System.out.println("爱银装素裹"); }}; private Season1(String name){ this.name = name; } private String name; @Override public String toString() { return name; }}