Java Enum
来源:互联网 发布:淘宝如何设置活动秒杀 编辑:程序博客网 时间:2024/05/16 09:52
本博客转自https://originals-tz.github.io/
什么是枚举类型
枚举类型(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
0zeroone0unequalzero0正常停止
阅读全文
0 0
- Java Enum
- JAVA ENUM
- Java Enum
- JAVA ENUM
- Java Enum
- Java Enum
- Java Enum
- java enum
- java enum
- java Enum
- java enum
- Java enum
- Java Enum
- java enum
- Java Enum
- java enum
- Java Enum
- Java Enum
- 461. Hamming Distance
- 非科班985本科求职经历
- golang有用的库及工具 之 一致性哈希(Consistent Hashing)算法
- 破解前端面试(80% 应聘者不及格系列):从 闭包说起
- Eclipse+ADT+Android SDK 搭建安卓开发环境
- Java Enum
- 51nod 1402 最大值 3级算法题 排序后修改限制点 时间复杂度O(m^2)
- 简单的Nginx负载均衡
- AXI4协议分析
- 逆置
- 高斯消元——球形空间产生器sphere
- 【模板】双向链表
- c++的新型数组
- Merge Two Binary Trees(leetcode)