Ada dua cara untuk mereferensikan instance kelas dalam kelas itu. Sebagai contoh:
class Person {
String name;
public void setName(String name) {
this.name = name;
}
public void setName2(String name) {
Person.this.name = name;
}
}
Satu menggunakan this.name
untuk mereferensikan bidang objek, tetapi yang lain menggunakan className.this
untuk mereferensikan bidang objek. Apa perbedaan antara kedua referensi ini?
Person.this
objek lain.Sintaks ini hanya menjadi relevan jika Anda memiliki kelas bertingkat:
sumber
Anda hanya perlu menggunakan className.this untuk kelas dalam. Jika Anda tidak menggunakannya, jangan khawatir.
sumber
Class.this
berguna untuk referensi yang tidak statisOuterClass
.Untuk membuat instance nonstatic
InnerClass
, Anda harus membuat instanceOuterClass
. Oleh karena itu, nonstaticInnerClass
akan selalu memiliki referensiOuterClass
dan semua bidang serta metodeOuterClass
tersedia untukInnerClass
.Dalam contoh ini keduanya
Innerclass
dibuat instance-nya dari yang samaOuterclass
sehingga keduanya memiliki referensi yang sama keOuterclass
.sumber