我有一个 Applet 子类(一个游戏客户端),它的所有实例都必须引用另一个非 Applet 类(称为Auxillary
)的单个实例。
我认为这只是将属性声明为静态的情况,但似乎在每个小程序实例的构造函数中,都为该小程序实例创建了一个新Auxillary
实例(我知道我在整个示例中都拼错了 Auxiliary.. .)
这是一个简单的例子;
客户
public class Applet extends JApplet {
// don't yet know Auxillary constructor args
public static Auxillary global;
public Applet() {
// now I know args
if (global == null)
global = new Auxillary("arbitrary", "arguments");
// test global
global.counter ++;
System.out.println(global.counter);
}
请注意,我保证 Auxillary 构造函数的参数对于每个 Applet 实例都是相同的。
辅助
public class Auxillary {
public int counter;
public Auxillary (Object a, Object b) {
counter = 0;
}
}
每次我创建一个新的 Applet 实例时,我都希望看到越来越多的打印数量;相反,它一直是 1。
我做错了什么?
这个 SO 问题让我相信我的 Applet 实例可以以某种方式共享一个属性实例。
此 Java Doc使用 static 关键字进行降级,但我将其解释为“不同 Applet 子类的不同实例”(并且我的 Applet 实例不会显示在同一页面上)
所以; 我怎样才能实现它?
谢谢