Java中的枚举Enum使用

Enum:enumerate

1、普通用法

package com;

import java.util.EnumMap;
import java.util.EnumSet;
import java.util.Map.Entry;

public class TestEnum {

	enum NormalEnum{
		MM,GG	//此处可以不用分号
	}
	
	public static void main(String[] args) {
		System.out.println(NormalEnum.MM);
		System.out.println(NormalEnum.MM.name());
		System.out.println(NormalEnum.MM.toString());
		
		System.out.println("----------------ordinal()--------------------");
		System.out.println(NormalEnum.MM.ordinal());
		System.out.println(NormalEnum.GG.ordinal());
		
		System.out.println("--------------compareTo----------------------");
		System.out.println(NormalEnum.MM.compareTo(NormalEnum.GG));
		
		System.out.println("---------------valueOf(\"MM\")---------------------");
		System.out.println(NormalEnum.valueOf("MM"));
		System.out.println(NormalEnum.valueOf("MM") == NormalEnum.MM);
		
		System.out.println("---------------switch---------------------");
		NormalEnum enumInstance = NormalEnum.MM;
		switch (enumInstance) {
		case MM:
			System.out.println(enumInstance);
			break;
		case GG:
			System.out.println(enumInstance);
			break;
		}
		System.out.println("--------------values()----------------------");
		for(NormalEnum normalEnum : NormalEnum.values()){
			System.out.println(normalEnum);
		}
		
		System.out.println("--------------EnumSet----------------------");
		EnumSet<NormalEnum> set = EnumSet.allOf(NormalEnum.class);
		for(NormalEnum normalEnum : set){
			System.out.println(normalEnum);
		}
		
		System.out.println("---------------EnumMap---------------------");
		EnumMap<NormalEnum, String> map = new EnumMap<TestEnum.NormalEnum, String>(NormalEnum.class);
		map.put(NormalEnum.MM, "美女");
		map.put(NormalEnum.GG, "帥哥");
		for(Entry<NormalEnum, String> entry : map.entrySet()){
			System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
		}
	}


}


2、 带参构造方法
package com;

public class TestEnum {

	enum NormalEnum{
		MM(18),GG(25);	//此处必须要有分号
		private int age;
		
		//构造方法只能是私有的
		private NormalEnum(int age){
			this.age = age;
		}
		
		public int getAge(){
			return age;
		}
		
		public static NormalEnum getInstance(int age){
			for(NormalEnum normalEnum : NormalEnum.values()){
				if(normalEnum.getAge() == age){
					return normalEnum;
				}
			}
			return null;
		}
	}
	
	public static void main(String[] args) {
		NormalEnum mm = NormalEnum.MM;
		NormalEnum gg = NormalEnum.GG;
		System.out.println("美女芳龄:"+mm.getAge());
		System.out.println("老牛:"+gg.getAge());
		System.out.println("找到18岁的"+NormalEnum.getInstance(18));
	}

}


3、每个实例各自实现自己的方法

package com;

public class TestEnum {

	enum NormalEnum{
		MM{
			String getInfo(){
				return "超级美女";
			}
		},
		GG{
			String getInfo(){
				return "大叔级别";
			}
		};
		
		abstract String getInfo();
	}
	
	public static void main(String[] args) {
		NormalEnum mm = NormalEnum.MM;
		NormalEnum gg = NormalEnum.GG;
		System.out.println(mm.getInfo());
		System.out.println(gg.getInfo());
	}

}


转载请标明出处: http://blog.csdn.net/panyzyw/article/details/57085027




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值