Java SE学习之枚举总结(一)

2014-11-23 19:00:34 · 作者: · 浏览: 34

本文是学习网络上的文章时的总结以及自己的一点实践,感谢大家无私的分享。

最近在看Java基础方面的书的时候,又遇到了枚举的介绍。在网上查了一些资料,对这些资料进行一些总结。

用法一:常量

package meiju;
/**
 * 
* @ClassName: Color 
* @Description: 枚举变量的常量用法
* @author zhangjunshuai junshuaizhang@163.com 
* @date 2014-11-16 下午07:29:40 
*
 */
public enum Color {
	RED,GREEN,BLANK,YELLOW
}

用法二:switch

package meiju;
/**
 * 
* @ClassName: Signal 
* @Description: 枚举的switch用法 
* @author zhangjunshuai junshuaizhang@163.com 
* @date 2014-11-16 下午07:33:32 
*
 */
enum Signal{
	GREEN,YELLOW,RED
}
public class EnumForswitch {

	Signal color = Signal.RED;
	public void change(){
		switch(color){
		case RED:
			System.out.println("红色");
			break;
		case YELLOW:
			System.out.println("金黄色");
			break;
		case GREEN:
			System.out.println("绿色");
			break;
		default:
				System.out.println("最后");
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

用法三:枚举中的方法

package meiju;
/**
 * 
* @ClassName: ColorMthod 
* @Description: 枚举的方法 
* @author zhangjunshuai junshuaizhang@163.com 
* @date 2014-11-16 下午07:35:09 
*
 */
enum ColorMthod{
	RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLOW("黄色",4);
	private String name;
	private int index;
	//枚举的构造方法 介个是怎么一回事呢?
	private ColorMthod(String name,int index){
		this.name = name;
		this.index = index;
	}
	//普通方法
	public static String getName(int index){
		for(ColorMthod c : ColorMthod.values()){
			if(c.getIndex()== index){
				System.out.println(c.name);
				return c.name;
			}
		}
		return null;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getIndex() {
		return index;
	}
	public void setIndex(int index) {
		this.index = index;
	}
	
}
public class EnumMethod {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ColorMthod.getName(1);

	}

}

用法四:覆盖枚举方法

package meiju;
/**
 * 
* @ClassName: EnumMethodOverride 
* @Description: 覆盖方法 
* @author zhangjunshuai junshuaizhang@163.com 
* @date 2014-11-16 下午07:37:04 
*
 */
public class EnumMethodOverride {

	public enum ColorMethod{
		RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
		private String name;
		private int index;
		
		private ColorMethod(String name,int index){
			this.name = name;
			this.index = index;
			
		}
		@Override
		public String toString(){
			return this.index+"_"+this.name;
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(ColorMethod.RED);
	}

}

用法五:实现接口

package meiju;
/**
 * 
* @ClassName: Behavior 
* @Description: 枚举实现接口 
* @author zhangjunshuai junshuaizhang@163.com 
* @date 2014-11-16 下午07:39:28 
*
 */
interface Behavior{
	void print();
	String getInfo();
}
enum ColorInterface implements Behavior{
	RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLOW("黄色",4);
	private String name;
	private int index;
	
	private ColorInterface(String name,int index){
		this.name = name;
		this.index = index;
	}
	
	public String getInfo(){
		return this.name;
	}
	
	public void print(){
		System.out.println(this.index+":"+this.name);
	}
}
public class EnumInterface {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated metho