☕️ this pada Pemrograman Java

☕️ this pada Pemrograman Java

this adalah sebuah keyword dalam bahasa Java. Keyword ini digunakan di dalam method atau constructor pada sebuah class. this ini bekerja sebagai acuan dari object saat ini, yang object tersebut bisa berupa method atau constructor yang dipanggil. this ini juga bisa digunakan untuk memanggil objek di dalam suatu instance method atau constructor.

Keyword this bisa sangat berguna dalam menangani Variable Hiding. Kita itu gak bisa buat dua variabel lokal atau dua variabel instance dengan nama yang sama. Namun, sah-sah saja jika kita buat satu variabel instance dan satu local variable atau parameter method dengan nama yang sama. Variabel lokal akan menyembunyikan variabel instance, inilah yang kita sebut Variable Hiding.
class KursiGoyang {
 int iniVariabel = 5;

 public static void main(String args[]) {
  KursiGoyang obj = new KursiGoyang();
  obj.iniMethod(20);
  obj.iniMethod();
 }

 void iniMethod(int iniVariabel) {
  iniVariabel = 10;
  System.out.println("Nilai iniVariabel adalah : " + iniVariabel);
 }

 void iniMethod() {
  int iniVariabel = 40;
  System.out.println("Nilai iniVariabel adalah : " + iniVariabel);
 }
}
Outputnya adalah sebagai berikut :
Nilai iniVariabel adalah 10
Nilai iniVariabel adalah 40
Seperti yang bisa kita liat, variabel instance tersembunyi, dan nilai dari local variabel (atau parameter dari method) lah yang ditampilin, bukan variabel instance. Untuk menyelesaikan masalah tersebut, digunakanlah keyword this diikuti dengan field/variabel untuk menampilkan hasil dari variabel instance.
class KursiGoyang {
 int iniVariabel = 5;

 public static void main(String args[]) {
  KursiGoyang obj = new KursiGoyang();
  obj.iniMethod(20);
  obj.iniMethod();
 }

 void iniMethod(int iniVariabel) {
  iniVariabel = 10;
  System.out.println("Nilai iniVariabel adalah : " + this.iniVariabel);
  System.out.println("Nilai iniVariabel adalah : " + iniVariabel);
 }

 void iniMethod() {
  int iniVariabel = 40;
  System.out.println("Nilai iniVariabel adalah : " + this.iniVariabel);
  System.out.println("Nilai iniVariabel adalah : " + iniVariabel);
 }
}
Outputnya adalah sebagai berikut :
Nilai iniVariabel adalah 5
Nilai iniVariabel adalah 10
Nilai iniVariabel adalah 5
Nilai iniVariabel adalah 40
This Keyword

Keyword this pada ConstructorKeyword this juga bisa kita gunakan di dalam sebuah contructor untuk memanggil constructor lain di class yang sama. Pemanggilan ini disebut Explicit Constructor Invocation. Hal ini terjadi jika sebuah class memiliki dua constructor, satu yang tanpa argument, dan satu lagi punya argument. Lalu, si this keyword bisa kita pake untuk manggil constructor yang punya argument dari constructor yang gak punya argument, soalnya constructor yang punya argument gak bisa kita panggil secara eksplisit.

Note:
  • this ini cuman bisa jadi statement pertama di constructor
  • Constructor bisa punya keyword this atau super, tapi gak bisa punya keduanya
class KursiGoyang {

 KursiGoyang() {
  this("KursiGoyang");
  System.out.println("Di dalam Constructor tanpa Parameter");
 }

 KursiGoyang(String str) {
  System.out.println("Di dalam Constructor pake Parameter : " + str);
 }

 public static void main(String args[]) {
  KursiGoyang obj = new KursiGoyang();
 }
}
Outputnya adalah sebagai berikut :
Di dalam Constructor pake Parameter KursiGoyang
Di dalam Constructor tanpa Parameter

Keyword this pada Method

Keyword this juga bisa kita pake didalam method untuk memanggil method lain dari class yang sama.
class KursiGoyang {

 public static void main(String args[]) {
  KursiGoyang obj = new KursiGoyang();
  obj.methodKedua();
 }

 void methodPertama() {
  System.out.println("Di dalam Method Pertama");
 }

 void methodKedua() {
  System.out.println("Di dalam Method Kedua");
  this.methodPertama();
 }
}
Outputnya adalah sebagai berikut :
Di dalam Method Kedua
Di dalam Method Pertama
Nah, itulah pembahasan tentang keyword this. Semoga bermanfaat ya dan jangan lupa bahagia sob!

Artikel ini hasil terjemahan dari https://javabeginnerstutorial.com/core-java-tutorial/this-keyword-java/
Load comments