有時候您會需要定義一些常數供程式使用,您可以使用介面或類別來定義,例如定義操作常數:
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),使用列舉型態,除常數設定的功能之外,您還可以獲得像編譯時期型態檢查等的更多好處。 |