-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

4

3 回答 3

5

静态变量按照它们声明的顺序进行初始化。

在您的情况下,mu初始化时变量仍然为 0(双精度值的默认值)HotDogcp,因此HotDogcp初始化为MyConstants.HotDog[0].

如果您static double mu =0.25;在第一行之前声明,它可能会达到您的预期。

于 2012-09-09T19:32:46.347 回答
2

因为Java不是数学方程求解器。因此,陈述的顺序很重要。

于 2012-09-09T19:33:08.547 回答
0

因为它们还没有初始化。将该计算放在 mu pls 下。

将初始化放在构造函数中。对外声明。

于 2012-09-09T19:36:05.027 回答