一、分析
常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量。不过,在1.5版之后有了改进,即新增了一种常量声明方式,枚举常量。代码如下:
enum Season{
Spring,Summer,Autumn,Winter;
}
二、场景
那么枚举常量与我们的经常使用的类常量和静态常量比有什么优势呢?
1.枚举常量更简单
先把Season枚举翻译成接口,代码如下:
interface Season{
int Sprint = 0;
int Summer = 1;
int Autumn = 2;
int Winter = 3;
}
枚举只需要定义每个枚举项,不需要定义枚举值,而接口常量(或类常量)则必须定义值,否则编译通不过;两个引用的方式相同(都是“类名.属性”,如Season.Sprint),但是枚举表示的是一个枚举项,字面含义是春天,而接口常量却是一个Int类型。
2.枚举常量属于稳态型
使用常量接口,我们得对输入值进行检查,确定是否越界,如果常量非常庞大,校验输入就是一件非常麻烦的事情,但这是一个不可逃避的过程。
public void describe(int s){
//s变量不能超越边界,校验条件
if(s >= 0 && s <4){