このJavaキーワードの手引き
1前書き
このチュートリアルでは、
__この
__Javaキーワードを見てみましょう。
Javaでは、**
this
keywordは、そのメソッドが呼び出されている現在のオブジェクトへの参照です。
キーワードの使用方法と使用時期について検討しましょう。
2フィールドシャドウイングの明確化
-
このキーワードは、ローカル変数からインスタンス変数を明確にするのに役立ちます。最も一般的な理由は、インスタンスフィールドと同じ名前のコンストラクタパラメータがある場合です。
public class KeywordTest {
private String name;
private int age;
public KeywordTest(String name, int age) {
this.name = name;
this.age = age;
}
}
ここでわかるように、
this
を
name
および
age
インスタンスフィールドと共に使用しています – それらをパラメータと区別するためです。
もう1つの使用法は、ローカルスコープで
this
をパラメータの非表示またはシャドウイングと共に使用することです。使用例は
変数とメソッドの隠蔽
の記事にあります。
3同じクラスのコンストラクタを参照する
-
コンストラクタから、同じクラスの異なるコンストラクタを呼び出すために
this()
を使うことができます。ここでは、コードの使用量を減らすために
this()
をコンストラクタの連鎖に使用します。
最も一般的な使用例は、パラメータ化されたコンストラクタからデフォルトのコンストラクタを呼び出すことです。
public KeywordTest(String name, int age) {
this();
//the rest of the code
}
あるいは、引数のないコンストラクタからパラメータ化されたコンストラクタを呼び出し、いくつかの引数を渡すこともできます。
public KeywordTest() {
this("John", 27);
}
this()
はコンストラクタの最初の文にする必要があります。そうしないとコンパイルエラーが発生します。
4
this
をパラメータとして渡す
ここに
printInstance()
メソッドがあります。ここでは、このKeyword__引数が定義されています。
public KeywordTest() {
printInstance(this);
}
public void printInstance(KeywordTest thisKeyword) {
System.out.println(thisKeyword);
}
コンストラクター内で、
printInstance()
メソッドを呼び出します。
this
では、現在のインスタンスへの参照を渡します。
5
this
を返す
-
メソッドから現在のクラスインスタンスを返すために
this
キーワードを使うこともできます。
コードを重複させないために、リンクにどのように実装されているかの完全な実例を示します。/creational-design-patterns[ビルダーデザインパターン]。
6. 内部クラス内の
this
キーワード
また、
this
を使用して、内部クラス内から外部クラスインスタンスにアクセスします。
public class KeywordTest {
private String name;
class ThisInnerClass {
boolean isInnerClass = true;
public ThisInnerClass() {
KeywordTest thisKeyword = KeywordTest.this;
String outerString = KeywordTest.this.name;
}
}
}
ここでは、コンストラクタ内で、
KeywordTest.this
call
.
__を使用して
KeywordTest
インスタンスへの参照を取得できます。さらに深く移動して、
KeywordTest.this.name
__fieldなどのインスタンス変数にアクセスできます。
7. 結論
この記事では、Javaの
this
キーワードを調べました。
いつものように、完全なコードはhttps://github.com/eugenp/tutorials/tree/master/core-java-lang-oop[over on Github]から入手できます。