【java】對被final修飾的變數進行賦值的幾種方法
阿新 • • 發佈:2019-01-04
對被final修飾的變數進行賦值的幾種方法
這是精華:
因為當類被載入進記憶體的時候,這個屬性並沒有給其分配記憶體空間,而只是定義了一個變數,只有當類被例項化的時候這個屬性才被分配記憶體空間,而例項化的時候同時執行了建構函式,所以屬性被初始化了,也就符合了當它被分配記憶體空間的時候就需要初始化,以後不再改變的條件。
被final修飾的變數
- 在定義時直接賦值。
fianl int a = 1;
- 宣告時不賦值,在constructor中賦值。
public class Test {
private int a;
public Test() {
a = 1 ;
}
}
- 宣告時不賦值,在構造程式碼塊中賦值,個人感覺還不如寫在建構函式裡,因此就不贅述了。
被final static修飾的變數
1.在定義時直接賦值.
final static int a = 1;
2. 宣告時不賦值,在靜態程式碼塊中賦值:
public class Test {
public static int a;
static {
a = 1;
}
}