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不是数学方程求解器。因此,陈述的顺序很重要。
因为它们还没有初始化。将该计算放在 mu pls 下。
将初始化放在构造函数中。对外声明。