Java では、私の教授は、静的メソッド内で非静的クラス メンバーを使用することはできないと教えてくれました。彼はまた、静的メソッドでは「this」キーワードを使用できないとも言いました。何故ですか?
5 に答える
2
非静的クラス メンバーでthis
あり、クラスのインスタンスに関連付けられているのに対し、静的メソッドはどのインスタンスにも関連付けられておらず、クラス自体に関連付けられています。
于 2013-09-29T00:57:43.357 に答える
1
静的メソッドはクラスをインスタンス化 (に基づいてオブジェクトを作成) せずに実行できるため、静的メソッドで非静的変数を使用することはできません。非静的変数はオブジェクトのメソッドを使用して変更できるため、非静的変数はオブジェクトに固有です。クラスを複数回インスタンス化して、メソッドを使用してオブジェクトに属する非静的変数を変更できる複数のオブジェクトを作成できるため、この非静的変数には複数の値が存在します。静的メソッドが非静的変数にアクセスできた場合、使用する値がわかりません。したがって、それを使用できない理由。
に関してはthis
、this
はオブジェクトに属する非静的変数を参照します。静的メソッドから非静的変数にアクセスすることはできないため、静的メソッドを呼び出すべきではありませんthis
。
于 2013-09-29T01:28:57.820 に答える
0
非静的メンバーとthis
キーワードの両方がオブジェクトのインスタンスを参照するためです。静的メソッドはインスタンスではなくクラスに属しているため、これらの2つのことは、上記のコンテキストでは何の意味もありません。
于 2013-09-29T00:57:52.427 に答える