標籤:public log 結束 執行個體變數 引用 void 局部變數 初始化 int
Java中的變數分為以下三種:
-
- 局部變數分配在記憶體中的棧空間。
- 局部變數沒有預設值,所以要使用的話必先初始化。
- 局部變數在方法、構造方法和代碼塊中聲明(代碼塊是指花括弧中的代碼所組成的塊,在花括弧中聲明的變數就是局部變數,它的範圍也是在花括弧所包含的範圍內,一旦代碼塊語句執行完畢,局部變數就自動銷毀)。
- 局部變數不能被存取修飾詞所修飾。
成員變數也叫全域變數,它包括執行個體變數、類變數和常量。但在我的理解中,一般是用來指執行個體變數居多,執行個體變數有如下的幾個特點:
-
- 執行個體變數在類中聲明,但又在方法和構造方法之外,範圍是整個類。
- 執行個體變數在對象建立的時候建立,隨著對象的銷毀而銷毀,它的記憶體配置在堆空間。
- 執行個體變數可以在使用前聲明,也可以在使用後聲明。
- 執行個體變數可以被存取修飾詞修飾。
- 執行個體變數有預設值,數實值型別預設的是0,布爾類型的預設是false,參考型別預設的是null。
- 當執行個體化一個對象的時候,執行個體變數的值也要確定下來。
類變數也叫靜態變數,經常用static來修飾(我的理解是用static修飾的變數就是靜態變數)。
-
- 靜態變數是在程式剛開始的時候建立的,程式結束時銷毀。
- 不管一個類建立了多少個對象,靜態變數只有一份拷貝,也就是不同對象中的靜態變數其實是指向的同一個。
- 類變數被聲明為public static final類型時,類變數名稱一般建議使用大寫字母。其他的正常命名。
- 預設值跟執行個體變數一樣。
- 靜態變數可以直接用類名加變數名訪問,即ClassName.Var,但執行個體變數就必須通過執行個體對象訪問。
- 靜態方法中不能訪問非靜態成員。
public class Test{ public int A; //執行個體變數 public static int B; //靜態變數 public void C(){ int D; //局部變數 }}
Java中的變數