これはメソッド内にのみ存在し、メソッドを呼び出すオブジェクトを表すために使用されます。各メソッド内に this というローカル変数が存在することがわかります。オブジェクトが初期化されるたびに、オブジェクトの各メソッド内の this 変数にオブジェクトのアドレスが渡され、メソッド内でこのオブジェクトが使用できるようになります。 . .
##最初の状況 (推奨される学習: Java コース)
一般的なメソッドでは、メソッド内の仮パラメータ名は現在のオブジェクトのメンバーと同じ名前になります。混乱を避けるために、明示的に this キーワードを使用して、特定のメンバーに対して使用することを示す必要があります。メソッドは「this.メンバー名」で、これが無いものが仮引数です。 さらに、「this.メソッド名」を使用して現在のオブジェクトのメソッドを参照することもできますが、現時点では必要ありません。メソッド名を直接使用して、そのメソッドとコンパイラにアクセスできます。どちらが呼び出されるかがわかります。
public class DemoThis { private String name; private int age; DemoThis(String name, int age) { setName(name); // 你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的 setAge(age); this.print(); } public void setName(String name) { this.name = name;// 此处必须指明你要引用成员变量 } public void setAge(int age) { this.age = age; } public void print() { System.out.println("Name=" + name + " Age=" + age);// 在此行中并不需要用this,因为没有会导致混淆的东西 } public static void main(String[] args) { DemoThis dt = new DemoThis("Kevin", "22"); } }
2 番目のケース
コンテナ クラス Container とコンテンツ クラス Component の 2 つのクラスがあるとします。Container のメンバー メソッドには、Component のオブジェクトが含まれます。クラスを呼び出す必要があります。 Component のコンストラクターには、それをパラメーターとして呼び出す Container クラスが必要です。class Container{ Component comp; public void addComponent(){ comp=new Component(this); } } class Component{ Container myContainer; public Component(Container c){ myContainer=c; } }
3 番目のケース
構築メソッドは他のメソッドのように呼び出すことができず、システムがオブジェクトを初期化するときにのみシステムによって呼び出すことができます。他の関数からは呼び出すことはできませんが、クラスの他のコンストラクタからは呼び出すことができるので、その場合はこれを使用します。 うわー
以上がJava でこれを使用する場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。