在工作中,慢慢发现用到枚举的地方很多,之前也没太注意这块,现在好好整理一下枚举的知识。
定义:类的对象只有有限个,确定的。比如:
星期:Monday(星期一)、......、Sunday(星期天)性别:Man(男)、Woman(女)季节:Spring(春节)......Winter(冬天)在这份代码中,其中的
SPRING("spring","春天"), SUMMER, AUTUMN, WINTER都是enum的对象。这是非常重要的一点。其中枚举类型还可以有自己的属性,还可以实现接口。如下
接口类
interface Info{ void show(); }测试类:
/** * 使用enum关键字定义枚举类 * 说明:定义的枚举类默认继承于java.lang.Enum类 * * @author ssl * @create 2020 */ public class enumTest { public static void main(String[] args) { Season spring = Season.SPRING; //toString():返回枚举类对象的名称 System.out.println(spring.toString()); System.out.println("****************"); //values():返回所有的枚举类对象构成的数组 Season[] values = Season.values(); for(int i = 0;i < values.length;i++){ System.out.println(values[i]); values[i].show(); } System.out.println("****************"); Thread.State[] values1 = Thread.State.values(); for (int i = 0; i < values1.length; i++) { System.out.println(values1[i]); } //valueOf(String objName):返回枚举类中对象名是objName的对象。 Season winter = Season.valueOf("WINTER"); //如果没有objName的枚举类对象,则抛异常:IllegalArgumentException // Season1 winter = Season1.valueOf("WINTER1"); System.out.println(winter); winter.show(); } }
