Java では、 thisキーワードをオブジェクトに明示的にバインドする必要はなく、インタープリターによって行われることを読みました。thisの値を常に知っておく必要がある Javascript とは逆です。しかし、これはJavaのどこにあるのでしょうか?クラスまたはオブジェクトを指していますか? それとも異なりますか?この質問は、基本的な OO の概念と設計パターンを理解し、それらを Javascript に適用できるようにするための私の試みの一部です。ありがとうございました。
7 に答える
Java では、this
常にオブジェクトを参照し、クラスを参照することはありません。
Java 言語仕様には、次のように記載されています。
一次式として使用される場合、キーワード this は、インスタンス メソッドが呼び出されたオブジェクト (§15.12) への参照、または構築中のオブジェクトへの参照である値を示します。
つまり、クラスではなく、常にオブジェクトを指します。
Java では「this」はキーワードであり、基本的に現在のオブジェクトを参照するために使用されます。次の例では、setter メソッドは「this」を使用して、現在のオブジェクトの名前と年齢の値を設定しています。
public class Person {
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Person p = new Person();
p.setName("Rishi");
p.setAge(23);
System.out.println(p.getName() + " is " + p.getAge() + " years old");
}
}
Javaでthis is refer Current object
お気に入り
public class Employee{
String name,adress;
Employee(){
this.name="employee";
this.address="address";
}
}
this
現在のオブジェクトを参照します。
インスタンス メソッドまたはコンストラクター内では、これは現在のオブジェクト (メソッドまたはコンストラクターが呼び出されているオブジェクト) への参照です。this を使用して、インスタンス メソッドまたはコンストラクター内から現在のオブジェクトの任意のメンバーを参照できます。
公式ドキュメントから(ここにあります):
インスタンス メソッドまたはコンストラクター内で
this
は、現在のオブジェクト (メソッドまたはコンストラクターが呼び出されているオブジェクト) への参照です。this を使用して、インスタンス メソッドまたはコンストラクター内から現在のオブジェクトの任意のメンバーを参照できます。
これが意味することは、任意のクラスのコード内で を記述するときthis
に、現在のオブジェクトを参照しているという事実を指定するということです。
補足として、this
静的フィールドまたはメソッドは特定のオブジェクト (クラスのインスタンス) に属していないため、使用できません。