首先,枚举是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()。

posted on 2020-04-22 09:16  Vinlen  阅读(165)  评论(0编辑  收藏  举报