首页 > 编程 > Java > 正文

Java中的枚举Enum使用

2019-11-07 23:30:02
字体:
来源:转载
供稿:网友

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表