您好,欢迎访问一九零五行业门户网

java枚举类型enum用法有哪些

java枚举类型enum用法有:1、枚举型常量;2、带一个参数的枚举;3、向枚举中添加新方法;4、覆盖枚举的方法。
java枚举类型enum用法有:
一、枚举型常量
package com.yang;//首先枚举是一个特殊的class//这个class相当于final static修饰,不能被继承//他的构造方法强制被私有化,下面有一个默认的构造方法private colorenum();//所有的枚举都继承自java.lang.enum类。由于java 不支持多继承,所以枚举对象不能再继承其他类public enum colorenum { //每个枚举变量都是枚举类colorenum的实例,相当于red=new colorenum(1),按序号来。 //每个成员变量都是final static修饰 red, green, blank, yellow;}
测试类:
@org.junit.testpublic void colortest() { //ordinal返回枚举变量的序号 for(colorenum color:colorenum.values()) { system.out.println(color+",ordinal:"+color.ordinal()+",name:"+color.name()); }}
二、带一个参数的枚举
package com.yang;public enum typeenum { firewall("firewall"), secret("secretmac"), balance("f5"); private string typename; typeenum(string typename) { this.typename = typename; } /** * 根据类型的名称,返回类型的枚举实例。 * * @param typename 类型名称 */ public static typeenum fromtypename(string typename) { for (typeenum type : typeenum.values()) { if (type.gettypename().equals(typename)) { return type; } } return null; } public string gettypename() { return this.typename; } }
测试类:
@org.junit.testpublic void typetest() { string typename = "f5"; typeenum type = typeenum.fromtypename(typename); //type:是typeenum类实例化对象 typename:实例化对象type的值 // ordinal:实例化对象type的序号(int) 排序值(默认自带的属性 ordinal 的值) //name:实化对象的名字(string) 枚举名称(即默认自带的属性 name 的值) system.out.println(type+",typename:"+type.gettypename()+",ordinal:"+type.ordinal()+",name:"+type.name());}
三、向枚举中添加新方法
package com.yang;public enum seasoneunm { //每一个枚举变量都是枚举类seasoneunm的实例化 //seasoneunm.spring获得的对象相当于new seasoneunm("春","春困");获得的对象 spring("春","春困"),summer("夏","夏睡"),autumn("秋","秋乏"),winter("冬","冬眠"); //强制私有化的构造方法,因为枚举类默认继承eunm类,被final static修饰,不能被继承 //由于被强制private,所以不能使用new去生成枚举对象 //在seasoneunm.spring获得对象,隐式调用了下面的构造方法 // 构造方法 ,赋值给成员变量 private seasoneunm(string name, string value) { this.name = name; this.value = value; } //添加成员变量的原因是,方便够着方法赋值,使用seasoneunm.spring.getname就能获取对应的值 private string name; private string value; public string getname() { return name; } public void setname(string name) { this.name = name; } public string getvalue() { return value; } public void setvalue(string value) { this.value = value; }
测试类:
@org.junit.testpublic void sessiontest() { //ordinal返回枚举变量的序号 for(seasoneunm seasion:seasoneunm.values()) { system.out.println(seasion+",ordinal:"+seasion.ordinal()+",name:"+seasion.name()); system.out.println("枚举变量值:"+seasion.getname()+",枚举变量值:"+seasion.getvalue()); }}
四、覆盖枚举的方法
package com.yang;public enum rgbenum { red("红色", 1), green("绿色", 2), blank("白色", 3), yello("黄色", 4); // 成员变量 private string name; private int index; // 构造方法 ,赋值给成员变量 private rgbenum(string name, int index) { this.name = name; this.index = index; } //覆盖方法 :只能使用tostring方法来输出枚举变量值 @override public string tostring() { return this.index+"_"+this.name; } }
测试方法:
@org.junit.testpublic void rgbenumtest() { for(rgbenum rgb:rgbenum.values()) { system.out.println(rgb.tostring()); }}
相关免费学习推荐:java基础教程
以上就是java枚举类型enum用法有哪些的详细内容。
其它类似信息

推荐信息