列舉由於靜態final,因為前者比後者更安全。如下**:
enum shapetype
public
class exptst
}
執行輸出:
null
rectangle
再看使用靜態final的例子:
class shapetype
public
class exptst
}
注意到此時type可以為乙個意想不到的無效整數值。要想保證乙個變數只能被賦予乙個有效值,顯然列舉相對較好。
另乙個不同時,列舉值是乙個物件,因為它的行為和物件一樣。例如把他用作map鍵。
列舉與靜態常量比較
靜態常量是列舉模式的應用 它有很多缺點 型別不安全 靜態常量可以隨意增加使用或操作 無命名空間,脆弱 某常量值改變後客戶端如果不編譯仍能使用,但表現卻是未定義的 靜態常量列印值為數字,也不具提示性等等 客戶端未編譯有待推敲?this pattern has many problems,such as...
final類與final方法
final 用於類 方法前。final類 不可被繼承。final方法 不可被覆蓋。final類不能被繼承。如果我們不希望乙個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。比如我們設定的math類,涉及了我們要做的數學計算方法,這些演算法也沒有必要修改,也沒有必要被繼承,我們把它設定成...
final關鍵字 靜態 static
final關鍵字 final關鍵字可以修飾成員變數,也可以修飾區域性變數 final關鍵字可以修飾在方法上 final關鍵字可以修飾在類上 final修飾在變數上 final修飾的變數只能被賦值一次,不能修改 final修飾在成員變數上,必須直接給初值 final修飾在區域性變數是,可以先宣告後給初...