これは、オブジェクトを表す Java のキーワードです。これはインスタンス メソッドとコンストラクターには表示されますが、クラス メソッドには表示されません。
これをコンストラクタで使用します
this キーワードがクラスのコンストラクターに出現する場合、そのコンストラクターを使用して作成されたオブジェクトを表します。
例えば:
publicclassPeople{intleg,hand;Stringname;People(Strings){name=s;this.init();//これは省略できます。つまり、init();}voidinit(){leg=2;hand と記述します。 =2;システム .out.println(名前+持っている+手+手+1eg+脚);}publicstaticvoidmain(Stringargs[]){Peopleboshi=newPeople(ブッシュ);}}
インスタンスメソッドでこれを使用する
インスタンス メソッドは、クラス名ではなく、オブジェクトを通じてのみ呼び出すことができます。 this キーワードがインスタンス メソッドに出現する場合、メソッドを呼び出している現在のオブジェクトを表します。
インスタンス メソッドはクラスのメンバー変数を操作できます。インスタンス メンバー変数がインスタンス メソッド内に出現する場合、一般的な形式は次のとおりです。
this.member 変数;
静的メンバー変数がインスタンス メソッドに使用される場合、一般的な形式は次のとおりです。
クラス名.メンバー変数;
例えば:
classA{intx;staticinty;voida(){this.x=10;Ay=20;}}
これは、クラス A のインスタンス メソッド a に表示されます。これは a を使用して現在のオブジェクトを表すため、「this.x」は現在のオブジェクトの変数 x を表します。オブジェクトがメソッド a を呼び出すと、オブジェクトの変数に 10 が代入されます。 ×。オブジェクトがメソッドを呼び出すと、メソッド内のインスタンス メンバー変数はオブジェクトに割り当てられたインスタンス メンバー変数を参照し、静的変数は他のオブジェクトと共有されます。したがって、通常はインスタンスのメンバ変数名の前にある「this.」と静的変数の前にある「クラス名」を省略できます。
例えば:
classA{intx;staticinty;voida(){x=10;//これを省略します。y=20;//クラス名を省略します。}}
知らせ:
インスタンスメンバ変数名がローカル変数名と同じ場合、メンバ変数の前の「this.」または「クラス名.」は省略できません。
クラスのインスタンス メソッドは、クラスの他のメソッドを呼び出すことができます。インスタンス メソッドを呼び出すための一般的な形式は次のとおりです。
このメソッド;
クラスメソッド呼び出しの一般的な形式は次のとおりです。
クラス名.メソッド;
例えば:
classB{voidb(){this.c();Bd();}voidc(){System.out.println(hi);}staticvoidd(){System.out.println(ok);}}
これはクラス B のメソッド b に現れ、これはメソッド b を呼び出す現在のオブジェクトを表します。したがって、メソッド b のメソッド本体にある this.c() は、メソッド c を呼び出す現在のオブジェクト、つまり、特定のメソッドを呼び出しているオブジェクトです。オブジェクト b の処理で、メソッド c が再度呼び出されます。この論理関係は非常に明確であるため、あるインスタンス メソッドが別のメソッドを呼び出す場合は、メソッド名の前の「this.」または「クラス名」を省略できます。
例えば:
classB{voidb(){c();//this.d()を省略します;//クラス名を省略します。}voidc(){System.out.println(hi);}staticvoidd(){System.out.println ( わかりました);}}
知らせ:
クラス メソッドはクラス名を通じて直接呼び出すことができ、オブジェクトがまだ生成されていない可能性があるため、これをクラス メソッド内に含めることはできません。