Kata this
kunci terutama digunakan dalam tiga situasi. Yang pertama dan paling umum adalah dalam metode setter untuk mendisambiguasi referensi variabel. Yang kedua adalah ketika ada kebutuhan untuk melewatkan instance kelas saat ini sebagai argumen ke metode objek lain. Yang ketiga adalah sebagai cara untuk memanggil konstruktor alternatif dari dalam konstruktor.
Kasus 1: Menggunakan this
untuk mendamaikan referensi variabel. Dalam metode Java setter, kita biasanya meneruskan argumen dengan nama yang sama dengan variabel anggota pribadi yang kita coba atur. Kami kemudian menetapkan argumen x
untuk this.x
. Ini memperjelas bahwa Anda menetapkan nilai parameter "nama" ke variabel "nama" contoh.
public class Foo
{
private String name;
public void setName(String name) {
this.name = name;
}
}
Kasus 2: Menggunakan this
sebagai argumen yang diteruskan ke objek lain.
public class Foo
{
public String useBarMethod() {
Bar theBar = new Bar();
return theBar.barMethod(this);
}
public String getName() {
return "Foo";
}
}
public class Bar
{
public void barMethod(Foo obj) {
obj.getName();
}
}
Kasus 3: Menggunakan this
untuk memanggil konstruktor alternatif. Dalam komentar, trinithis dengan benar menunjukkan penggunaan umum lain dari this
. Ketika Anda memiliki beberapa konstruktor untuk satu kelas, Anda dapat menggunakan this(arg0, arg1, ...)
untuk memanggil konstruktor lain yang Anda pilih, asalkan Anda melakukannya di baris pertama konstruktor Anda.
class Foo
{
public Foo() {
this("Some default value for bar");
//optional other lines
}
public Foo(String bar) {
// Do something with bar
}
}
Saya juga telah melihat this
digunakan untuk menekankan fakta bahwa variabel instance sedang direferensikan (tanpa perlunya disambiguasi), tetapi itu adalah kasus yang jarang menurut saya.