java编程枚举类型那些事!枚举类型定义和重写枚举的方法
什么是枚举类型 枚举类型(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数据类型的使用问题、java编程基础之模仿用户登录代码分享等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |