2012-09-09 107 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

因为它们尚未初始化。把这个计算放在万人以下。

将初始化置于构造函数中。外面的声明。