enum就像一个特殊的class,他可以有自己的变量,可以定义自己的方法,可以实现一个或多个接口。在声明一个enum类型时,要注意它的一些特征。
1、它不能有public的构造函数,这样可以避免其他客户代码新建一个enum实例。
2、所有枚举值都是public static final的。
3、enum默认实现了java.lang.Comparable接口。
4、enum重载了toString方法,因此我们如果调用Color.Blue.toString(),默认返回字符串“Blue”。
5、enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf("Blue")将返回Color.Blue。因此,我们在自己重写toString方法的时候,一般对应重写valueOf方法。
6、enum还提供了values方法,你可以遍历所有的枚举值。
7、enum提供了一个oridinal方法,返回枚举值在枚举类中的顺序,这个顺序根据枚举值声明的顺序而定。