JAVA中枚举类的使用
枚举(enumeration),顾名思义就是列举,因此使用枚举类的前提就是有限、确定的。
我们使用枚举类可以通过两种方式:
一、自定义类型枚举类;
二、通过关键字enum来定义枚举类;
第二种方式相当于继承了java.lang.Enum下的枚举类(Enum)。
下面我会用这两种方式分别举例:
第一种:自定义枚举类型
自定义枚举类型,和我们平常自己定义类没有啥区别,并且我们要重写toString方法,不然它打印的是地址值
//这里先定义枚举类,测试代码放到后面
//自定义枚举类,这里我们定义了一个表示周的枚举类
class Week {
//声明私有属性
private final String name;
//私有化类的构造器,并给对象属性赋值
private Week(String name) {
this.name = name;
}
//提供当前类的多个对象,既然是确定的就不允许改变
public static final Week MonDAY = new Week("Mon");
public static final Week TUESDAY = new Week("Tue");
public static final Week WENDSDAY = new Week("Wen");
public static final Week THURSDAY = new Week("Thur");
public static final Week FRIDAY = new Week("Fri");
public static final Week SATURDAY = new Week("Sat");
public static final Week SUNDAY = new Week("Sun");
// 获取枚举类对象的属性
public String getName() {
return name;
}
@Override
public String toString() {
return "name:"+this.name;
}
}
第二种:利用关键字 enum 来定义
利用这种方式定义枚举类显然更简洁一些,而且不用重写toString方法
enum Season{
SPRING("spring", "beautiful"),
SUMMER("summer", "hot"),
AUTUMN("autumn", "cool"),
WINTER("winter", "cold");//这里注意类与类之间要用逗号隔开
private String name;
private String desc;
//私有化构造器
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
//提供公共的访问方法
public String getInfo() {
return "name:"+this.name+" desc:"+this.desc;
}
}
测试代码:
public class EnumTest {
public static void main(String[] args) {
//第一种:
String name1 = Week.MONDAY.getName();
String str1 = Week.MONDAY.toString();
System.out.println(name1);
System.out.println(str1);
//第二种:
String name2 = Season.SUMMER.getInfo();
String str2 = Season.SUMMER.toString();
System.out.println(name2);
System.out.println(str2);
}
}
输出: Mon name:Mon name:summer desc:hot SUMMER
枚举类中常用的方法:
String toString();
static Season[ ] values();//返回该枚举类中所有的枚举类对象
static Season valueOf(String str);//返回该枚举类中与字符串同名的的枚举类对象
public class EnumTest {
public static void main(String[] args) {
Season[] values = Season.values();
for(int i=0;i
输出:
SPRING
SUMMER
AUTUMN
WINTER
SUMMER
枚举类的学习就到这了。
敲代码是我快乐!!!



