重複の可能性:
Java での「これ」の意味は何ですか?
私はまだ Android プログラミングの学習に非常に慣れていませんが、言語のメソッド呼び出しのパラメーターで "this" が頻繁に使用されていることに気付きました。私は YouTube で The New Boston のチュートリアルをフォローしていますが、彼は「この」ステートメントが何を意味するのかを十分に詳細に説明していません。誰か説明してくれませんか?多分それを少しダム?
重複の可能性:
Java での「これ」の意味は何ですか?
私はまだ Android プログラミングの学習に非常に慣れていませんが、言語のメソッド呼び出しのパラメーターで "this" が頻繁に使用されていることに気付きました。私は YouTube で The New Boston のチュートリアルをフォローしていますが、彼は「この」ステートメントが何を意味するのかを十分に詳細に説明していません。誰か説明してくれませんか?多分それを少しダム?
this
現在コーディングしているクラスのインスタンスを参照します。
この状況ではオブジェクト コンテキスト内にいないため、静的コンテキストでは使用できません。したがってthis
、存在しません。
public class MyClass {
public void myMethod(){
this.otherMethod(); // Here you don't need to use 'this' but it shows the concept
}
private void otherMethod(){
}
public static void myStaticMethod(){
// here you cant use 'this' as static methods don't have an instance of a class to refer to
}
}
Androidclass.this
では、コンテキストを渡すために使用されます。
コンテキストの正式な定義: アプリケーション固有のリソースとクラスへのアクセス、およびアクティビティの起動などのアプリケーションレベルの操作のアップコールを許可します。つまり、リソース (R およびユーザー インターフェイスを含む) にアクセスする必要がある場合は、コンテキストを使用する必要があります。
Java では、これは現在のクラスのインスタンスを意味します。たとえばMainActivity.this
、MainActivity の現在のインスタンスを指します。したがって、使用MainActivity.this.foo
することで、MainActivity クラスの foo フィールドにアクセスしています。
public class YourClass {
private int YourInt;
public setTheInt(int YourInt) {
this.YourInt = YourInt;
}
}
「this」は、属性または関数が作業中のクラスに属しているかどうかをより明確に確認するために使用されます。
また、setTheInt 操作は、属性と同じ名前の整数を取得することがわかります。その関数の名前空間では、YourInt はこのクラスの YourInt ではなく、setTheInt の呼び出しからの整数の反映です。「this」は、ここで外側と内側の「YourInt」を分割するのに役立ちます。