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爲什麼這個不行
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爲什麼這個不行
靜態變量在其聲明的順序初始化。
在你的情況下,mu
變量仍然是0(雙打默認值),當您初始化HotDogcp
,所以HotDogcp
被初始化爲MyConstants.HotDog[0]
。
如果您在第一行之前聲明static double mu =0.25;
,它可能會按照您的預期行事。
因爲Java不是一個數學方程求解器。因此,陳述的順序很重要。
因爲它們尚未初始化。把這個計算放在萬人以下。
將初始化置於構造函數中。外面的聲明。
YEs YEs它的工作謝謝你 – nmu