-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(doublesのデフォルト値)なので、に初期化HotDogcpHotDogcpMyConstants.HotDog[0]ます。

最初の行の前に宣言static double mu =0.25;すると、おそらく期待どおりの結果が得られます。

于 2012-09-09T19:32:46.347 に答える
2

Javaは数式ソルバーではないからです。したがって、ステートメントの順序が重要になります。

于 2012-09-09T19:33:08.547 に答える
0

まだ初期化されていないからです。その計算をmuplsの下に置きます。

コンストラクター内に初期化を配置します。外の宣言。

于 2012-09-09T19:36:05.027 に答える