列舉與靜態final

2021-07-13 13:18:54 字數 390 閱讀 6832

列舉由於靜態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修飾在區域性變數是,可以先宣告後給初...