類的域(field ,資料成員)是基本型別時的預設值

langgufu314發表於2011-09-29

若某個基本型別欄位屬於一個類,那麼即使不明確(顯式)進行初始化,也可以保證它們獲得一個預設值。

基本型別    預設值

Boolean   false
Char       '\u0000'(null)
byte         (byte)0
short       (short)0
int              0
long           0L
float           0.0f
double       0.0d

一旦將變數作為類成員使用,就要特別注意由Java分配的預設值。這樣做可保證基本型別的成員變數肯定得到了初始化(C++不具備這一功能),可有效遏止多種相關的程式設計錯誤。
然而,這種保證卻並不適用於“區域性”變數——那些變數並非一個類的欄位。所以,假若在一個函式定義中寫入下述程式碼:
int x;
那麼x會得到一些隨機值(這與C和C++是一樣的),不會自動初始化成零。我們的責任是在正式使用x前分配一個適當的值。

如果忘記,就會得到一條編譯期錯誤,告訴我們變數可能尚未初始化。這種處理正是Java優於C++的表現之一。許多C++編譯器會對變數未初始化發出警告,但在Java裡卻是錯誤。

相關文章