Java枚举类

首先,枚举是jdk1.5添加的一个新的功能。在1.5之前,我们定义一个常量都是public static final.....对于虚拟机来说,final关键字是比普通的定义常量更加消耗内存。

在引入枚举之后,我们可以

public enum Size {
    SMALL,MEDIUM,LARGE,EXTRA_LARGE;
}

实际上,这个声明定义的类型是一个类,它刚好有4个实例,在此尽量不要添加新的对象。
因此,比较两个枚举类型的值的时候,永远不需要调用equals,直接使用“==”就行了。所有得枚举类型都是Enum的子类,他们继承了这个类的很多方法,其中最常用的就是toString,
String small=Size.SMALL.toString();

输出字符串变量small 就会显示“SMALL”;
toString的逆方法是静态方法ValueOf,例如
Size z=Enum.valueOf(Size.class,"SMALL");//将z设置成Size.SMALL;

每个枚举类型都有一个静态的values方法,他将返回一个包含全部枚举值的数组
Size[] values=Size.values();
//正常枚举循环遍历可以使用
if(Size.hasMoreElements()){
Object s=Size.nextElement();
}
补充:枚举里存放的是常量,是不可以改变的。想要改变里面的值可以转换成其他类型来进行操作,比如上面的values()。

不和别人一样,不复制只真正理解
原文地址:https://www.cnblogs.com/Vinlen/p/12749758.html