使用public static final 來設定常數(大寫字母),能增加程式閱讀性
但有時應避免使用常數,因為int整數的範圍太大,而程式只需要幾個特定的值。
可以使用Enum列舉,避免輸入錯誤的值。
例如:
public enum Engine {
// Java 5 之前沒有列舉,需自行建立特定數量的物件
// public static final Engine engine_open = new Engine();
// public static final Engine engine_close = new Engine();
//私有建構子,避免外界程式建立物件
// private Engine() {
// }
//Java 5.0之後提供列舉,可簡化Enum Pattern做法
close, open;
}
public class main {
public static void main(String[] args) {
Taxi bmw = new Taxi();
bmw.setState(Engine.open);
// bmw.setState(28); //錯誤的狀態值
}
}
Singleton Pattern
確保物件只有一份。
例如 :
public class 屠龍刀 {
private static final 屠龍刀 instance = new 屠龍刀();
private 屠龍刀() {
}
public static 屠龍刀 getInstance() {
return instance;
}
}
public class Main {
public static void main(String[] args) {
// 屠龍刀 a = new 屠龍刀(); //編譯失敗,因為建構子為私有
屠龍刀 a1 = 屠龍刀.getInstance();
屠龍刀 a2 = 屠龍刀.getInstance();
System.out.println("是否參考相同物件: " + (a1 == a2));
}
}