Java基础之《枚举类》

枚举类是一种特殊的class,使用关键字enum定义。
枚举类里的枚举值就是这个枚举类的对象,拥有这个枚举类所定义的属性和方法。

例子程序:EnumTest.java
最简单的枚举定义和遍历

package com.test.enumtest;

//枚举类-常量
public enum EnumTest {
	//定义枚举值-常量
	sunday,
	monday,
	tuesday,
	wednesday,
	thursday,
	friday,
	saturday;
	
	public static void main(String args[]) {
		
		//获得常量
		/*通过values()获得枚举值的数组*/
		for (EnumTest e : EnumTest.values()) {
			System.out.println(e.toString());
		}
		System.out.println("===============");
		//效果一样
		for (EnumTest e : EnumTest.values()) {
			System.out.println(e);
		}
		System.out.println("===============");
		System.out.println(EnumTest.thursday);
	}
}
运行结果:
sunday
monday
tuesday
wednesday
thursday
friday
saturday
===============
sunday
monday
tuesday
wednesday
thursday
friday
saturday
===============
thursday

例子程序:EnumTest1.java
带数值的枚举值,以及遍历数值
package com.test.enumtest;

//枚举类-常量带数值
public enum EnumTest1 {
	//定义枚举值-常量带数值
	sunday(99),
	monday(100),
	tuesday(101),
	wednesday(102),
	thursday(103),
	friday(104),
	saturday(105);
	
	private final int value;
	
	public int getValue() {
		return value;
	}
	
	//构造方法
	private EnumTest1(int value) {
		this.value = value;
	}
	
	public static void main(String args[]) {
		for (EnumTest1 e : EnumTest1.values()) {
			System.out.println(e);
		}
		System.out.println("===============");
		for (EnumTest1 e : EnumTest1.values()) {
			System.out.println(e.getValue());
		}
	}
}
运行结果:
sunday
monday
tuesday
wednesday
thursday
friday
saturday
===============
99
100
101
102
103
104
105

例子程序:EnumTest2.java
带键值对的枚举值,以及遍历
package com.test.enumtest;

//枚举类-键值对
public enum EnumTest2 {
	//定义枚举值-键值对
	sunday(99,"sun"),
	monday(100,"mon"),
	tuesday(101,"tues"),
	wednesday(102,"wed"),
	thursday(103,"thur"),
	friday(104,"fri"),
	saturday(105,"sat");
	
	private final int code;
	private final String value;
	
	private EnumTest2(int code, String value) {
		this.code = code;
		this.value = value;
	}
	
	public int getCode() {
		return code;
	}
	
	public String getValue() {
		return value;
	}
	
	public static void main(String args[]) {
		for (EnumTest2 e : EnumTest2.values()) {
			System.out.println(e + " " + e.getCode() + " " + e.getValue());
		}
	}
}
运行结果:
sunday 99 sun
monday 100 mon
tuesday 101 tues
wednesday 102 wed
thursday 103 thur
friday 104 fri
saturday 105 sat

例子程序:EnumTest3.java
使用Map保存枚举值,以及遍历
package com.test.enumtest;

import java.util.HashMap;
import java.util.Map;

//枚举类-键值对(装入一个HashMap内)
public enum EnumTest3 {
	//定义枚举值-键值对
	sunday(99,"sun"),
	monday(100,"mon"),
	tuesday(101,"tues"),
	wednesday(102,"wed"),
	thursday(103,"thur"),
	friday(104,"fri"),
	saturday(105,"sat");
	
	private final int code;
	private final String value;
	
	private EnumTest3(int code, String value) {
		this.code = code;
		this.value = value;
	}
	
	public int getCode() {
		return code;
	}
	
	public String getValue() {
		return value;
	}
	
	private static Map<Integer, String> param = new HashMap<Integer, String>();
	
	public static Map<Integer, String> getParam() {
		return param;
	}
	
	//静态语句块初始化HashMap
	static {
		for (EnumTest3 e : EnumTest3.values()) {
			param.put(e.getCode(), e.getValue());
		}
	}
	
	public static void main (String args[]) {
		//遍历Map
		for (Map.Entry<Integer, String> m : EnumTest3.getParam().entrySet()) {
			System.out.println("key:" + m.getKey() + " value:" + m.getValue());
		}
	}
}
运行结果:
key:102 value:wed
key:103 value:thur
key:100 value:mon
key:101 value:tues
key:99 value:sun
key:104 value:fri
key:105 value:sat


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值