自分自身を指し示す「thisキーワード」とは?
Javaでは、オブジェクトの内部でそのオブジェクト自身を指し示すために this
キーワードを使います。
特に、コンストラクタやメソッドの引数名とフィールド名が重なるときによく使われます。
thisの主な用途
- フィールドと引数を区別する
- 他のコンストラクタを呼び出す
- 自分自身のインスタンスを返す
1. フィールドと引数の区別に使う
フィールド名と引数名が同じ場合、this
を使ってフィールドであることを明確にします。
public class Person {
private String name;
public Person(String name) {
this.name = name; // 引数ではなく、フィールドを指す
}
}
2. 他のコンストラクタの呼び出しに使う
this()
を使えば、同じクラス内の別のコンストラクタを呼び出せます(必ず1行目に書く必要あり)。
public class Book {
private String title;
private int price;
public Book() {
this("無題", 0); // 別のコンストラクタを呼び出す
}
public Book(String title, int price) {
this.title = title;
this.price = price;
}
}
3. 自分自身のインスタンスを返す
this
を使って、自分自身のオブジェクトを戻り値として返すこともできます。
public class Counter {
private int count = 0;
public Counter add(int value) {
this.count += value;
return this; // 自分自身を返す(メソッドチェーン用)
}
}
thisの使いどころまとめ
this.変数名
:クラスのフィールドを指す
this()
:別のコンストラクタを呼び出す
return this;
:自分自身の参照を返す
まとめ
this キーワードは、Javaのオブジェクト内で「自分自身のインスタンス」を指すために使います。
フィールドとの区別や、コンストラクタ呼び出し、メソッドチェーンなど幅広い場面で登場するため、使いどころをしっかり理解しておくことが大切です!