`
schy_hqh
  • 浏览: 543334 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

(基础)枚举Enum

 
阅读更多

枚举就是用来定义一组常量,将其使用一个枚举符号进行组织

如,信号灯包括:红、黄、绿 3种颜色

如,四季包括:春、夏、秋、冬 4个季节

这些都可以通过枚举类型进行定义,管理和使用起来比较方便!

 

 

用法一、常量

 

package org.java.test.enumeration;

public class ClassA {
	
	/**
	 * 枚举常量定义
	 */
	public static enum INSURED{
		第一被保人,第二被保人,第三被保人
	}

	
	public static void main(String[] args) {
		//取枚举中定义的常量
		String insuredPerson = INSURED.第一被保人.name();
		System.out.println(insuredPerson);
	}
	
}

 

 

用法二、switch语句中使用枚举常量

package org.java.test.enumeration;

public class ClassB {
	/**
	 * 枚举常量
	 */
	public static enum Signal {
		GREEN,YELLOW,RED
	}
	
	
	/**
	 * switch语句中使用常量 
	 */
	public void change(Signal color) {
		switch(color) {
			case RED:System.out.println("red");break;
			case GREEN:System.out.println("green");break;
			case YELLOW:System.out.println("yellow");break;
			default:System.out.println("??");break;
		}
	}
	
	public static void main(String[] args) {
		ClassB obj = new ClassB();
		obj.change(Signal.RED);
	}
}	

 

用法三、为枚举元素设置属性和方法

package org.java.test.enumeration;

public class ClassC {
	/**
	 * 按事物分类--->用枚举定义
	 * 每种又包含不同的特性--->为枚举类型定义属性/方法
	 */
	public static enum Color {
		//初始化枚举类型中的属性
		RED("红色",1),GREEN("绿色",2),YELLOW("黄色",3);
		
		//fields
		private String name;
		private int index;
		
		//constructor
		private Color(String name, int index) {
			this.name = name;
			this.index = index;
		}
		
		public static String getNameByIndex(int index) {
			for(Color c : Color.values()) {
				if(c.getIndex()==index) {
					return c.getName();
				}
			}
			return null;
		}
		
		
		
		@Override
		public String toString() {
			return this.name+"-"+this.index;
		}

		//getters
		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 static void main(String[] args) {
		
		Color[] colors = Color.values();
		for(Color c : colors) {
			System.out.println(c);
		}
		
		int index = 1;
		String name = Color.getNameByIndex(index);
		System.out.println(name);

	}
}

 

 

用法四、实现接口

package org.java.test.enumeration;

public interface InterfaceA {
	public void print();
}

 

package org.java.test.enumeration;

public class ClassD {
	
	public static enum Color implements InterfaceA {
		//elements
		RED("红色","禁止"),YELLOW("黄色","小心"),GREEN("绿色","允许");
		
		//field
		private String flag;
		private String info;
		
		//constructor
		private Color(String flag, String info) {
			this.flag = flag;
			this.info = info;
		}
		
		@Override
		public void print() {
			System.out.println(this.getFlag()+"--->"+this.getInfo());
		}
		
		
		//getters setters
		public String getInfo() {
			return info;
		}

		public void setInfo(String info) {
			this.info = info;
		}

		public String getFlag() {
			return flag;
		}

		public void setFlag(String flag) {
			this.flag = flag;
		}
		
		
	}

	
	public static void main(String[] args) {
		
		for(Color c :Color.values()) {
			c.print();
		}
	}
}

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics