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。不幸的是,该程序似乎将“combinations[1][0]”和“combinations[2][0]”作为它们自己的变量引用,而不是它们要引用的“Na”和“Br”。如果我分别用这些值替换“Na”和“Br”,它就像一个魅力!......关于如何使数组认识到它只是引用预初始化的“Na”和“Br”的任何想法数组中的那些?

任何帮助将非常感激!先感谢您!

4

1 回答 1

2

从您的代码中,我只能假设您在删除后已初始化“Na”和“Br”

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

如果您在代码顶部初始化“Na”和“Br”,您会注意到它工作正常,因为当这两个变量不是引用不存在时声明了组合。尝试这个

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 回答