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