一、枚举类型的定义
我们需要将不同变量编号时,通常将其变量进行赋值为1,2,3...但是这么做有时候会吧1误以为某个变量,这时我们可以直接用枚举来组织,这样一来就有了枚举类型。
如图:
上面的变量都有序了,上面变量没赋值,序号默认为0,1,2
二、枚举类型的使用
(一)、枚举类型的常用方法
(二)、枚举的简单使用
先创建一个枚举类
代码如下:
public enum TestEnum { RED(1, "红色"),GREEN(2, "绿色"),BLACK(3, "黑色"); private int ordinal; private String color; //构造方法默认为私有的 private TestEnum(int ordinal, String color) { this.ordinal = ordinal; this.color = color; }
(1)、和switch的搭配使用
代码如下:
public static void main(String[] args) { TestEnum color = RED; switch (color) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLACK: System.out.println("黑色"); break; default: System.out.println("error"); break; } }
这种情况会打印 红色
(2)、枚举类型的values方法
代码如下:
public static void main(String[] args) { TestEnum[] testEnum = TestEnum.values(); for(int i = 0; i < testEnum.length; i++) { //打印枚举所有变量的序号 System.out.println(testEnum[i].ordinal); //打印枚举所有变量的下标 System.out.println(testEnum[i].ordinal()); //打印枚举所有变量的color值 System.out.println(testEnum[i].color); }
结果如下
(3)、枚举类型的valueOf方法
代码如下:
public static void main(String[] args) { //以普通字符串转换为枚举实例 TestEnum testEnum = TestEnum.valueOf("GREEN"); System.out.println(testEnum); }
结果如下:
(4)、枚举类型的compareTo方法
代码如下:
public static void main(String[] args) { //比较两个枚举成员定义时的顺序 System.out.println(RED.compareTo(BLACK)); }
结果如下:
三、优点和缺点
优点:
1、枚举具有内置方法,代码更简洁,优雅
2、枚举常量更具安全性
缺点:不能继承,无法扩展