2

Java のローカル変数とメンバー変数について質問があります。状況は次のとおりです。ローカル変数を定義すると、その変数をいくつかのレベルのメソッド呼び出しに渡す必要がある場合があります。クラスのどこでも変数を使用できるように、なぜクラスのメンバー変数を定義する必要があるのか​​ 、よく考えます。クラスのメンバー変数は、クラス内のどこからでもアクセスできるグローバル変数のようなものです。

  1. このシナリオのベスト プラクティスは何ですか? または、何をするのが正しいですか?

  2. メンバー変数として定義する場合、静的変数または非静的変数のどちらにする必要がありますか?

4

6 に答える 6

5

メンバー変数は、クラスによって表されるプログラム内の「もの」の特性 (属性は別の用語) を保持します。変数がそのようなものを保持している場合は、それをメンバー変数にします。そうでない場合は、しないでください。

静的変数は、そのクラスのオブジェクトの特性とは対照的に、クラス自体の特性を保持します。

「…をいくつかのレベルのメソッド呼び出しに渡すかどうか」に基づいて決定しないでください。

于 2013-04-12T21:05:08.650 に答える
0

それは行動です。変数がクラス属性の一部である場合、つまりクラスの動作を特徴付ける場合は、それをクラス メンバー変数として定義します。それ以外の場合は、メソッド内でローカル変数を定義します。

私の意見では、引数を渡しても、属性タイプの定義には寄与しません。

于 2013-04-12T21:04:39.190 に答える
0

場合によります。

メソッドのすべて (またはいくつか) で同じメンバー変数にアクセスする場合は、クラスで宣言します。

静的かどうかは、情報がクラスに属しているか (静的)、またはクラスのインスタンスに属しているか (非静的) によって決まります。

于 2013-04-12T21:05:38.947 に答える
0

1.) 複数のメソッドで使用する予定があり、それを渡す必要がある場合は、メンバー変数を作成します。そのメソッドだけの場合は、ローカルにします。

2.)staticすべての間で共有されるその変数の唯一のインスタンスであることを意味します。たとえば、totalGameScore何があってもゲーム全体のスコアを保持する変数があります。その variable を作成したいと思いますstatic。それ以外healthに、敵の変数があるとしましょう。敵にはそれぞれ独自のhealthものがあるため、その変数は作成しませんstatic

メンバー変数を宣言しprivateて、他のクラスがそれらにアクセスできないようにすることもできます。 Constants通常、常にメンバー変数にする必要があります。

于 2013-04-12T21:05:51.607 に答える