在 Java 程式中寫下一個數值,則編譯器會為該數值配給一個記憶體空間,然而在程式設計時,你經常會需要先擁有記憶體空間,該空間中要放些什麼數值你事先並無法得知,必須要等程式開始執行並運算之後,才會將運算結果儲存至該空間中。
你可以先宣告一個記憶體空間,告知編譯器這個空間將儲存的資料是什麼型態,並且這個記憶體空間會有個名稱,稍後你執行程式時,可以使用這個名稱,將指定資料存入預先宣告的記憶空間之中,這樣的名稱與空間叫作「變數」( Variable ),而宣告的這個動作稱之為變數宣告。
變數可分為三類:
一、區域變數 (Local variables)
1.定義在函數式內,僅在函數內有效。
2.由於僅在函數內有效,不能使用存取權限修飾詞 (access level modifier)。
3.無預設值,使用前必須先賦值。
二、實作變數 (Instance variables)
1.定義在類別內,但函數式外。
2.類別內有效,可使用存取權限修飾詞 (access level modifier)來改變存取限制:
private:僅類別內有效。
public:除類別內,子類別內也有效。
3.有預設值,依資料類型而不同。
三、類別變數 (Class/static variables)
1.就是用static定義的實作變數。
2.不管有幾個實作(instance),一個類別內的類別變數都是同一個。
3.類別變數可使用:ClassName.VariableName 直接呼叫。
4.只有程式結束,類別變數才會被回收。
5.將類別變數宣告為:public static final 的話,要整個變數名大寫