java枚举类中,在main方法为什么可以这样调用

jht727415 发布于 2014/10/26 23:31
阅读 1K+
收藏 0
Season spring = Season.SPRING  是把SPRING 看作是枚举类Season的静态变量吗
加载中
0
RAY_STONE
RAY_STONE
枚举是一个特殊的有限制的class
0
有明丶
有明丶

是的,枚举类其实就是Java中的一个类而已,只是在编写的过程中通过enum来表示和规范,在编译的过程中,编译器会把它转换成普通的类,枚举的值也会变成这个类的静态变量。

其过程可以通过Java编译机制了解。

0
静心天涯
静心天涯

我好奇怎么去解释这个问题,于是就 baidu google 了一下。

我们可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。

既然 enum 是一个 class,自然也包含了属性和各种方法,实际上,枚举定义的变量,经编译器解释后就变成了我们常见的 public static final XXX xxx; 所以你可以把枚举变量当成一个静态常量来用。

更好的资料:可以参考这个:http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html

返回顶部
顶部