1. 程式人生 > >【java】對被final修飾的變數進行賦值的幾種方法

【java】對被final修飾的變數進行賦值的幾種方法

對被final修飾的變數進行賦值的幾種方法

這是精華:

因為當類被載入進記憶體的時候,這個屬性並沒有給其分配記憶體空間,而只是定義了一個變數,只有當類被例項化的時候這個屬性才被分配記憶體空間,而例項化的時候同時執行了建構函式,所以屬性被初始化了,也就符合了當它被分配記憶體空間的時候就需要初始化,以後不再改變的條件。

被final修飾的變數

  1. 在定義時直接賦值。
    fianl int a = 1;
  2. 宣告時不賦值,在constructor中賦值。
public class Test {
    private int a;
    public Test() {
        a = 1
; } }
  1. 宣告時不賦值,在構造程式碼塊中賦值,個人感覺還不如寫在建構函式裡,因此就不贅述了。

被final static修飾的變數

1.在定義時直接賦值.
final static int a = 1;
2. 宣告時不賦值,在靜態程式碼塊中賦值:

public class Test {
    public static int a;
    static {
        a = 1;
    }
}