0

少し問題があります。現在、化学プログラムの一環として、次のものを持っています。

public static Substance Na;
public static Substance Br;

public static Substance NaBr;

public static Substance[][] combinations = {
             {NaBr, NaCl},
         {Na  , Na },
             {Br  , Cl }};
combinations[0][0] = new compound(550);

addCombination(combinations[0][0] , combinations[1][0], combinations[2][0]);

ここでの目標は、Na と Br を使用して NaBr を作成する組み合わせを追加することです。残念ながら、プログラムは、参照するはずの「Na」と「Br」ではなく、「combinations[1][0]」と「combinations[2][0]」を独自の変数として参照しているようです。これらの値をそれぞれ「Na」と「Br」に置き換えると、魅力的に動作します!...代わりに、事前に初期化された「Na」と「Br」のみを参照していることを配列に認識させる方法に関するアイデア配列内のものの?

どんな助けでも大歓迎です!前もって感謝します!

4

1 に答える 1

2

あなたのコードから、宣言後に「Na」と「Br」を初期化したとしか思えません

public static Substance[][] combinations = {
             {NaBr, NaCl},
             {Na  , Na },
             {Br  , Cl }};

コードの先頭で「Na」と「Br」を初期化すると、正常に動作することがわかります。これは、これら 2 つの変数が参照ではないときに組み合わせが宣言されたためです。これを試して

public static Substance Na = new Substance(...);
public static Substance Br = new Substance(...);

public static Substance NaBr = new Substance(...);

public static Substance[][] combinations = {
             {NaBr, NaCl},
         {Na  , Na },
             {Br  , Cl }};

そしてそれはうまくいくはずです。

于 2013-04-05T23:34:20.393 に答える