私はアプレット サブクラス (ゲーム クライアント) を持っています。そのすべてのインスタンスは、別の非アプレット クラス (吹き替え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 コンストラクターへの引数が、すべてのアプレット インスタンスで同じである/同じであることを保証することに注意してください。
補助
public class Auxillary {
public int counter;
public Auxillary (Object a, Object b) {
counter = 0;
}
}
新しい Applet インスタンスを作成するたびに、表示される数が増えることを期待しています。代わりに、常に 1 です。
何が間違っていますか?
この SO の質問は、アプレット インスタンスが何らかの方法で属性インスタンスを共有できることを確信させます。
この Java Docは static キーワードを使用して降格しますが、私はこれを「異なるアプレット サブクラスの異なるインスタンス」として解釈します (そして、私のアプレット インスタンスは同じページに表示されません)。
そう; どうすれば達成できますか?
ありがとう