1

私はいくつかの実装と少し混乱しています。これが私の問題です。

  1. 2 人のユーザーがシステムにログインできます。(ユーザー A、B)
  2. 異なるユーザー名とパスワードで同時にログインする

Employeeクラスにはstatic変数呼び出しがあると仮定しますage

ユーザー A が age の値を 45 に変更し、その後、ユーザー B が age の値を 28 に変更してから、両者が変更を保存します。

では、A と B の実際の値はどうなるでしょうか?

ありがとうございました

4

3 に答える 3

1

このシナリオでは、A と B には年齢がありません。Employeeクラスには年齢があります。static フィールドは、クラスのインスタンスではなく、クラスに関連付けられています。したがって、Employee.ageフィールドの値は 28 になります。

静的メンバーの詳細については、Java チュートリアルを参照してください。

于 2012-11-03T12:05:04.700 に答える
1

まず第一に、「age」は静的変数ではなくインスタンス変数にする必要があります。静的変数は、クラスのすべてのインスタンスで共有されます。

あなたが示した例では、クラスタ化されていない環境で作業していると仮定すると、最後の設定値は「固執する」ものです(つまり、同じ仮想マシンでインスタンス化されたクラスでシャティック変数が共有されます)。

于 2012-11-03T12:06:19.320 に答える
0

静的変数には、それを使用している 各オブジェクトによって共有されるコピーが 1 つだけありますが、インスタンス変数には、オブジェクトごとに異なるコピーがあります。

あなたの場合、変数は静的であるため、変数の最初の値は45です

その後、値 28で上書きされます。

于 2012-11-03T13:13:35.090 に答える