-3
ここでは、変数をインスタンス化するためにstaticキーワードを使用しています.2つの異なるObjects.Iを使用して変数を呼び出しています。静的キーワードを使用せずに1と2の結果を出力します。 。staticキーワードを使用せずに変数をインクリメント
public class Test {
static int a = 1;
public void meth() {
System.out.println(a);
a = a + 1;
}
public static void main(String[] args) {
Test a = new Test();
Test b = new Test();
a.meth(); //prints 1
b.meth(); //prints 2
}
}
割り当て質問:
Test
を構築する際に例えば、
int
のための可変ラッパーとしてAtomicInteger
を使用して、オブジェクトを提供しますか? –staticキーワードを削除すると、aの値は '' Test''の2つのインスタンスで共有されなくなります。したがって、あなたの出力は、それぞれのインスタンスが独自のカウント変数を持つので、 '' 1 ''になります。 – f1sh
'a'はすべてのインスタンスで共有されます。 'static'を削除すると、それは各インスタンスに関連付けられます。 1つのインスタンスを作成し、 'meth'を2回呼び出す - 最初の呼び出しは1を出力し、2回目は2を出力します。 – Maroun