天天看点

java枚举类用法总结

案例:使用枚举类型(enum)来定义Season类

public class enumTest {
	public static void main(String[] args) {
		//Season.SPRING 可以获取一个Season对象
		Season spring = Season.SPRING;
		spring.showInfo();
		//重复执行Season.SPRING 所获取的Season对象都是同一个
		//枚举类中的每个枚举都是单例模式的
		Season spring1 = Season.SPRING;
		System.out.println(spring1.equals(spring));
		
		Season summer = Season.SUMMER;
		summer.showInfo();
		
		Season autumn = Season.AUTUMN;
		autumn.showInfo();
		
		Season winter = Season.WINTER;
		winter.showInfo();
		winter.test();
	}
}

//枚举类可以比较简便地实现单例模式
enum Season implements ITest {
	//此处相当于在调用私有的有参构造方法
	SPRING("春天", "春暖花开"), //注:枚举常量之间用逗号隔开
	SUMMER("夏天", "炎炎夏日"),
	AUTUMN("秋天", "秋高气爽"),
	WINTER("冬天", "寒风凛冽");
	
	private Season(String name, String desc)
	{
		this.name = name;
		this.desc = desc;
	}
	
	public void showInfo()
	{
		System.out.println(this.name + ": " + this.desc);
	}
	
	private final String name; //final修饰的成员变量变成了常量
	private final String desc;
	
	@Override
	public void test() {		
		System.out.println("这是实现ITest接口的test方法");
	}
}

interface ITest{
	void test();
}
           
java枚举类用法总结

从案例可以总结出对枚举类的用法:

  • 枚举类是一种特殊的类,因为已经继承了枚举类,所以不能再继承其他类
  • 枚举类中的枚举常量之间用逗号隔开
  • 枚举常量可以调用本类的构造方法,可以简便地实现单例模式
  • 通过枚举类名.枚举常量名可以获取该类的一个对象,但是多次执行相同的枚举类名.枚举常量名所获取的是同一个对象
  • 枚举类可以像普通类一样去实现接口