java编程枚举类型那些事!枚举类型定义和重写枚举的方法
程序员文章站
2024-02-21 20:32:28
什么是枚举类型
枚举类型(enumerated type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。
而这种枚举类型的名称则会被定义成...
什么是枚举类型
枚举类型(enumerated type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。
而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。
简单的枚举类型定义
假如你希望创建一个颜色库,你可以这样定义枚举类型
enum color {red, green, yellow, black};
然后你就可以使用它
color t = color.red; if (t == color.red) system.out.println("i am red"); switch(t) { case red: system.out.println("i am red"); break }
定制枚举类型
在c/c++中,我们可以这样使用枚举变量
enum color {red,green}; enum color a = 1;// a is green
在java中定义枚举类型的值
enum color { red(1),green(2); private final int number; color(int i) { this.number = i; } public getvalue() { return this.number; } }
然后使用 t.getvalue() 便可获取绑定的值
重写枚举的方法
枚举类给我们提供的方法有,具体可以查看enum.java
name, tostring, valueof //获取名字 equals //比较 ordinal //获取位置
实现接口
所有的枚举都继承自java.lang.enum类。
由于java 不支持多继承,所以枚举对象不能再继承其他类,但是可以实现接口
test
enum number { zero(0),one(1),two(2); int n; number(int i) { this.n = i; } public int getvalue(){ return this.n; } } interface people_state { string getstate(); state_enum changestate(); } enum state_enum implements people_state { normal("正常"), stop("停止"); private final string state; state_enum(string s) { this.state = s; } public string tostring() { return state; } @override public string getstate() { return state; } @override public state_enum changestate() { if (this == normal) return stop; else return normal; } } public class test_enum { public static void main(string[] args) { number z = number.zero; state_enum state = state_enum.normal; system.out.println(z.getvalue()); system.out.println(z); system.out.println(number.one); switch (z) { case zero: system.out.println(0); break; case one: system.out.println(1); break; case two: system.out.println("2"); break; } //equals if (z.equals(number.one)) { system.out.println("equal!"); } else { system.out.println("unequal"); } //valueof system.out.println(number.valueof("zero")); //ordinal system.out.println(z.ordinal()); //the index of values system.out.println(state.tostring()); state = state.changestate(); system.out.println(state.getstate()); } }
output
0 zero one 0 unequal zero 0 正常 停止
总结
以上就是本文关于java编程枚举类型定义和重写枚举的方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:java编程long数据类型的使用问题、等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!