Enum枚举类型
来源:互联网 发布:ubuntu调出终端快捷键 编辑:程序博客网 时间:2024/06/09 18:23
enum类型定义
enum类型实际是一个类,继承自java.lang.Enum,编译器将enum类型单独编译成了一个字节码文件,枚举类型的枚举值都是常量即常见的public static final
的形式,因此枚举类中的枚举值最好全部大写。
定义一个enum类
public enum Color { RED, GREEN, BLANK, YELLOW }
可以看到编译后的class文件中将枚举值编译成了常量
public final class Color extends Enum{ private Color(String s, int i){...} public static Color[] values(){...} public static Color valueOf(String s){...} public static final Color RED; public static final Color GREEN; public static final Color BLANK; public static final Color YELLOW; private static final Color ENUM$VALUES[]; static { RED = new Color("RED", 0); GREEN = new Color("GREEN", 1); BLANK = new Color("BLANK", 2); YELLOW = new Color("YELLOW", 3); ENUM$VALUES = (new Color[] { RED, GREEN, BLANK, YELLOW }); }
既然是类,我们可以在Enum中定义构造器、方法、数据域,其中构造器一定是私有的,这样保证外部不能访问构造新的枚举值,但方法和数据域外部可以访问。
public enum Color { RED(255, 0, 0), GREEN(0, 255, 0), BLANK(0, 0, 0), YELLOW(255, 255, 0);// 注意在末尾加分号 private int red;// 数据域定义 private int green; private int blue; private Color(int r, int g, int b) {//构造方法,私有 this.red = r; this.green = g; this.blue = b; } @Override public String toString() {//重写父类toString return "(" + red + "," + green + "," + blue + ")"; } getter...setter...}
所有的枚举类型都继承自Enum抽象类,该类中的方法
public final int ordinal()
返回枚举值在枚举类型的顺序Color.RED.ordinal()//0
,该顺序取决于定义的顺序
public final String name()
返回枚举值得字段值Color.RED.name()//RED
,为枚举值得字符串
public final int compareTo(E o)
实现了Comparable接口,返回两个枚举值之间的顺序之差Color.RED.compareTo(Color.BLANK)//-2
toString(),equal()比较两个枚举类型的引用使用==比较返回布尔值
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
与toString()方法对应,返回带指定名称的指定枚举类型的枚举常量Color.valueOf("RED")//(255,0,0)
返回为枚举值的toString返回
Color color = null;switch (color) {case RED: break;case GREEN: break;default: break;}
Enum类型可以用于switch判断。
public enum Color implements Serializable
Enum可以实现接口,Java单继承模式下因为已经继承了Enum类,所以不能继承。
0 0
- Java enum 枚举类型
- C#枚举类型enum
- C#枚举类型enum
- C#枚举类型enum
- enum枚举类型学习
- JAVA枚举类型Enum
- 枚举类型-enum使用
- C枚举类型enum
- C枚举类型enum
- 枚举类型------enum
- Enum 枚举类型
- [Java] enum 枚举类型
- Java enum 枚举类型
- c# 枚举 enum 类型
- java enum 枚举类型
- c++ 枚举类型 enum
- enum枚举类型
- 枚举类型 enum
- 很方便的API查询网站
- BufferedReader and BufferedWriter基本用法。
- WPF 获取 ListView DataTemplate 中控件值
- 直接拿来用!十大Material Design开源项目
- Android开发总结笔记 AsyncTask 5-2
- Enum枚举类型
- clipChildren与canvas的关系,导致有background属性时会遮住
- 我的MYSQL学习心得(十三) 权限管理
- Sublime Text2安装Package Control和插件
- QT xml转ini的实现(从C#转到QT)
- java集合-List
- ios中使用自己添加的字体
- 在新窗口打开链接
- activity 任务栈