有时候您会需要定义一些常量供程序使用,您可以使用接口或类来定义,例如定义操作常量:
public interface OpConstants { 常量必须是可以直接取用,并且不可被修改的,所以我们在声明时加上 static 与 final,事实上,对于接口来说,当中的常量默认就为public、static、final,即使您没有明确指定修饰,例如下例与上例是一样的:
public interface OpConstants { 这意谓着如果您实现的接口中有定义常量,您不可以重新指定该常量值,例如下例是错误的… interface ISome {
int const = 10; ... } public class Some implements ISome { public Some() { const = 20; // 这行是错的 } } 声明常量之后,就可以在程序中直接使用 OperateConstants.TURN_LEFT之类的名称来取代常量值,例如: public void someMethod() {
如果使用类来声明的话,方法也是类似,例如:
.... doOp(OpConstants.TURN_RIGHT); .... } public void doOp(int op) { switch(op) { case OpConstants.TURN_LEFT: System.out.println("向左转"); break; case OpConstants.TURN_RIGHT: System.out.println("向右转"); break; case OpConstants.SHOOT: System.out.println("射击"); break; } }
public class OpConstants { 对于简单的常量设置,上面的作法已经足够了,不过在 J2SE 5.0 中新增了 枚举类型(Enumerated Types),使用枚举类型,除常量设定的功能之外,您还可以获得像编译时期类型检查等的更多好处。 |