在Java中,所有的變量必須先聲明才能使用它們。變量聲明的基本形式如下:
type 是Java 的資料類型之一。該辨別符是該變量的名稱。申報指定類型的多個變量,用逗号分隔的清單。
下面是各種類型的變量聲明的幾個例子。需要注意的是它們可能也包括初始化。
本章将解釋各種變量類型Java語言提供。有三種類型的變量在Java中:
局部變量
執行個體變量
類/靜态變量
局部變量的方法,構造函數或塊中聲明。
建立局部變量的方法,構造函數或塊時進入,一旦退出方法,構造函數或塊中的變量将被銷毀。
通路修飾符不能用于局部變量。
局部變量是可見的,隻有内聲明的方法,構造函數或塊。
局部變量在堆棧級别内部實作。
在這裡對局部變量沒有預設值,是以局部變量應該聲明和初始值應在第一次使用前配置設定。
在這裡,age 是一個局部變量。這是定義裡面 pupAge() 方法,其範圍僅限于該方法。
這将産生以下結果:
下面的示例使用 age 沒有初始化它,是以它會在編譯時給出錯誤資訊。
編譯它,這将産生以下錯誤:
執行個體變量在類中聲明,但在方法的外面,構造函數或任何塊。
當空間配置設定給某個對象在堆中,插槽為每個執行個體變量建立值。
當一個對象與使用關鍵字 “new” 來建立,在對象被銷毀銷毀建立的執行個體變量。
執行個體變量認為必須由一個以上的方法,構造函數或塊,或一個對象的狀态的關鍵部分必須出現在整個類中引用的值。
執行個體變量可以在使用前或後級的級别聲明。
通路修飾符可以給出執行個體變量。
執行個體變量對于所有方法,構造函數和塊在類中可見。通常,建議,使這些變量私有(接入層)。然而能見度子類可以給這些變量與使用通路修飾符。
執行個體變量有預設值。對于數字的預設值是0,為布爾值是false和對象引用為null。值可以在聲明或構造函數中配置設定。
執行個體變量可以直接通過調用變量名的類的内部通路。然而在靜态方法和不同的類(當執行個體變量被賦予通路)應使用完全限定名調用 ObjectReference.VariableName.
這将産生以下結果:
類變量也稱為靜态變量在類的static關鍵字聲明的,但在方法外面,構造函數或塊。
每個類變量隻有一個副本,不管有多少對象從它被建立。
靜态變量很少使用不是被聲明為常量等。常量是被聲明為公共/私營,最終和靜态變量。常量變量從來沒有從他們的初始值改變。
靜态變量被存儲在靜态存儲器中。這是罕見的使用靜态變量以外聲明為final,用作公共或私有常數。
在程式啟動時的靜态變量被建立,在程式停止銷毀。
能見度類似于執行個體變量。然而,大多數靜态變量聲明為 public,因為它們必須可用于類的使用者。
預設值是相同的執行個體變量。對于數字,預設值是0;為布爾值,它是假的,和對象引用,它為null。值可以在聲明或構造函數中配置設定。另外值可以在特殊的靜态初始化塊進行配置設定。
靜态變量可以通過調用與類名來通路。 ClassName.VariableName.
當定義的變量為 public static final ,那麼變量的名稱(常量)都是大寫。如果靜态變量是不公開的和最終的命名文法是相同的執行個體變量和局部變量。
注意:如果變量是從外部類通路的常數應被通路 Employee.DEPARTMENT