為什么沒有賦值的時候,float型變量默認為零?而String類變量為null?
public?class?HelloWorld?{ float?a; public?static?void?main(String[]?args)?{ HelloWorld?helloword=new?HelloWorld(); System.out.println("a:"+helloword.a); } } 求解釋為什么是0.0?不是沒有初始化嗎?
public?class?HelloWorld?{ float?a; public?static?void?main(String[]?args)?{ HelloWorld?helloword=new?HelloWorld(); System.out.println("a:"+helloword.a); } } 求解釋為什么是0.0?不是沒有初始化嗎?
2015-12-22
舉報
2016-01-28
在類中定義的變量,術語叫做域(field)。包括:
類域(class field),俗稱靜態域、靜態變量、類變量,特點是用static修飾,static用來說明該域是屬于類的。每個類只有一個類域。加載類的時候、類域會隨之加載,在創建對象之前類域就已經賦值;
實例域(instance field),又稱實例變量。創建對象并初始化之后,每個對象擁有自己的取值不同的實例域。
如果沒有在構造器中、聲明中、代碼塊中進行初始化數據域,那么就會自動的賦予默認值:數值為0;布爾值為false;對象引用為null。String是類,因此default為null,float是數值,因此default為0.0.
2016-01-24
float默認的就是0.0
2015-12-22
float未初始化的默認值就是0.0
2015-12-22
成員變量float不是初始化0.0的嗎
2015-12-22
string為null我已經知道了,現在不清楚為什么float類型的a輸出0.0;