这里我们要对Enum类中的方法进行举例分析,这里我们先给出一个相关的使用enum关键字定义的枚举类
package 枚举类.枚举类的定义.enum关键字定义枚举类; //通过enum关键字定义枚举类 public enum Season1 { /* 1. 通过enum关键字定义枚举类时,首先我们上来就要提供当前枚举类的对象, 多个对象之间使用,(逗号)隔开,末尾对象使用;(封号结束) 注意: 这里创建对象的时候省略了很多不重要的东西比如: new关键字, 变量类型 ,构造方法名 补充: 这里如果是使用无参构造器创建对象的话那么()也可以省略 */ SPRING("春天","春暖花开"), SUMMER("夏天","夏日炎炎"), AUTUMN("秋天","秋高气爽"), WINTER("冬天","冰天雪地"); /* 后面的步骤就和我们自定义枚举类时一样 */ /* 2. 声明Season1类的属性(常量), 使用private final关键字共同修饰 */ private final String seasonName; private final String seasonDesc; /* 3. 私有化类的构造器,并给对象的属性赋值 注意: 使用构造器赋值的方式可以让我们的每个对象都唯一存在一个常量 */ private Season1(String seasonName , String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } /* 4. 其他诉求: 4.1 获取枚举类对象的属性 */ public String getSeasonName(){ return this.seasonName; } public String getSeasonDesc(){ return this.seasonDesc; } /* 4.2 根据需求提供toString()方法 注意: 这里我们即使不重写toString()方法,输出此枚举类对象的时候也不会输出地址值,因为我们使用enum关键字定义的枚举类都是直接继承了 java.lang.Enum类,而Enum类中重写了继承自Object类的toString()方法,Enum类中重写的toString()方法输出的就是枚举类对象所对应的常量名 */ @Override public String toString() { return "Season1{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' + '}'; } }
eg:
//这个Season1类就是我们上面给出的使用enum关键字定义的枚举类 Season1 summer = Season1.SUMMER; /* 这里我们对summer对象输出的时候会默认的调用toString()方法,但是这里我们还是显示的进行了调用 这里输出的结果为: SUMMER */ System.out.println(summer.toString());
eg:
/* 这里的Season1类是通过enum关键字定义的枚举类,而使用enum关键字定义的枚举类都直接继承于Enum类,所以这里通过Season1类调用的values()方法其实是声明在Enum类中的 */ Season1 [] values = Season1.values(); for(int i = 0; i < values.length ; i++){ System.out.println(values[i]); }
eg:
Thread.State [] values = Thread.State.values(); for(int i = 0; i < values.length ; i++){ System.out.println(values[i]) }
eg:
/* 通过Season1类调用valueof()方法创建了一个WINTER对象并赋给了Season1类型的引用winter */ Season1 winter = Season1.valueof("WINTER"); //这里输出的自然就是winter引用对应的枚举类对象的对象名 : WINTER System.out.println(winter);