2012-09-09 105 views
-2
static final double HotDogcp = MyConstants.HotDog[0]-(MyConstants.HotDog[0] * MyConstants.mu); 
static final double [] HotDog = {18, 8, 10, 0}; 
static double mu =0.25; 

爲什麼HotDogcp不等於13.5爲什麼這個不行

回答

5

靜態變量在其聲明的順序初始化。

在你的情況下,mu變量仍然是0(雙打默認值),當您初始化HotDogcp,所以HotDogcp被初始化爲MyConstants.HotDog[0]

如果您在第一行之前聲明static double mu =0.25;,它可能會按照您的預期行事。

+0

YEs YEs它的工作謝謝你 – nmu

2

因爲Java不是一個數學方程求解器。因此,陳述的順序很重要。

0

因爲它們尚未初始化。把這個計算放在萬人以下。

將初始化置於構造函數中。外面的聲明。