Java基础学习总结--枚举的简单使用

JDK1.5引入了枚举类型。枚举类型的定义包括枚举声明和枚举体。格式如下:

enum 枚举名 {
	枚举体(常量列表)
}

用法一:常量

enum Direction{
	FRONT,BEHIND,LEFT,RIGHT;
}

用法二:switch

enum Season{
	SPRING,SUMMER,AUTUMN,WINTER;
}

public class Temp {
	public static void main(String[] args) {
		int tag = new Random().nextInt(4);
		Season season = Season.values()[tag];
		
		switch (season) {
		case SPRING:
			System.out.println("春天");
			break;
		case SUMMER:
			System.out.println("夏天");
			break;
		case AUTUMN:
			System.out.println("秋天");
			break;
		case WINTER:
			System.out.println("冬天");
			break;
		}
	}
}

用法三:向枚举中添加成员

enum Season{
	SPRING("春天"),SUMMER("夏天"),AUTUMN("秋天"),WINTER("冬天");
	
	//成员变量
	private String name;
	public static String character;
	
	//构造方法
	private Season(String name) {
		this.name = name;
	}
	
	//普通方法
	public void sayHello() {
		System.out.println("我是"+this.name);
	}
	
	public static void show() {
		System.out.println(character);
	}
}
enum Season{
	SPRING {
		@Override
		void test() {
			
		}
	},
	SUMMER {
		@Override
		void test() {
			
		}
	},
	AUTUMN {
		@Override
		void test() {
			
		}
	},
	WINTER {
		@Override
		void test() {
			
		}
	};
	
	//抽象方法
	abstract void test();
}

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

enum Season{
	SPRING,SUMMER,AUTUMN,WINTER;
	
	String msg = "跑调大叔";
	
	@Override
	public String toString() {
		return msg;
	}
}

用法五:实现接口

interface TestDemo{
	public void sayHello();
	public void print();
}

enum Season implements TestDemo{
	SPRING,SUMMER,AUTUMN,WINTER;
	
	//实现接口中的方法
	@Override
	public void sayHello() {
		
	}
	
	//实现接口中的方法
	@Override
	public void print() {
		
	}
}

注意事项

  1. 定义枚举类要用关键字enum;
  2. 所有枚举类都是Enum的子类。他们默认都是public static final修饰的;
  3. 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略;
  4. 枚举类可以有构造器,但必须是private的,它默认的也是private的。如果有构造器,那么枚举项的用法比较特殊:枚举项("");
  5. 枚举类也可以有抽象方法,但是所有项必须重写该方法;
  6. 当你需要定义一组常量时,可以使用枚举类型。
    Java新手,如有错误,欢迎指正!

猜你喜欢

转载自www.cnblogs.com/Java-biao/p/12591818.html