Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Kata Kunci Java this: Penggunaan Praktis, Konstruktor, dan Lainnya

Java this Keyword Dijelaskan

Artikel ini membahas kata kunci this di Java, mencakup tujuannya, skenario umum, dan praktik terbaik dengan contoh nyata yang jelas.

Apa Itu this?

Di Java, kata kunci this merujuk pada instance saat ini dari sebuah kelas. Ini paling sering digunakan di dalam instance methods atau konstruktor untuk membedakan antara instance variables dan parameter yang memiliki nama yang sama.

class Main { int instVar; Main(int instVar){ this.instVar = instVar; System.out.println("this reference = " + this); } public static void main(String[] args) { Main obj = new Main(8); System.out.println("object reference = " + obj); } }

Output:

this reference = Main@23fc625e object reference = Main@23fc625e

Kedua this dan variabel obj menunjuk ke instance objek yang sama, mengonfirmasi bahwa this hanyalah referensi ke objek saat ini.


Kapan Menggunakan this

Kata kunci ini sangat berharga dalam beberapa pola pemrograman umum:

Mengatasi Ambiguitas Nama Variabel

Java memungkinkan parameter untuk berbagi nama dengan instance variable, tetapi tanpa this kompiler tidak dapat menentukan yang Anda maksud. Misalnya:

class MyClass { int age; MyClass(int age){ age = age; } }

Dalam konstruktor di atas, age = age menetapkan parameter ke dirinya sendiri, sehingga instance variable tidak berubah. Menggunakan this menjelaskan penetapan:

class Main { int age; Main(int age){ this.age = age; } public static void main(String[] args) { Main obj = new Main(8); System.out.println("obj.age = " + obj.age); } }

Output:

obj.age = 8

Jika nama parameter berbeda dari instance variable, kompiler secara implisit menggunakan this:

class Main { int age; Main(int i) { age = i; } }

Ini setara dengan this.age = i.

Menggunakan this dalam Getter dan Setter

Setter dan getter sering menerima parameter dengan nama yang sama dengan field. this memastikan variabel yang benar ditargetkan:

class Main { String name; // setter void setName(String name) { this.name = name; } // getter String getName(){ return this.name; } public static void main(String[] args) { Main obj = new Main(); obj.setName("Toshiba"); System.out.println("obj.name: " + obj.getName()); } }

Output:

obj.name: Toshiba

Constructor Overloading dengan this()

Saat satu konstruktor perlu mendelegasikan ke konstruktor lain, this() melakukan pemanggilan konstruktor secara eksplisit:

class Complex { private int a, b; private Complex(int i, int j){ this.a = i; this.b = j; } private Complex(int i){ this(i, i); // memanggil konstruktor dua parameter } private Complex(){ this(0); // memanggil konstruktor satu parameter } @Override public String toString(){ return this.a + " + " + this.b + "i"; } public static void main(String[] args) { Complex c1 = new Complex(2, 3); Complex c2 = new Complex(3); Complex c3 = new Complex(); System.out.println(c1); System.out.println(c2); System.out.println(c3); } }

Output:

2 + 3i 3 + 3i 0 + 0i

Poin utama:

Catatan: Pemanggilan konstruktor eksplisit melalui this() harus menjadi pernyataan pertama dalam konstruktor.

Mengirimkan this sebagai Argumen

Karena this adalah referensi ke objek saat ini, dapat dikirimkan ke metode lain, memungkinkan mereka untuk mengubah status objek:

class ThisExample { int x; int y; ThisExample(int x, int y) { this.x = x; this.y = y; System.out.println("Sebelum mengirimkan this ke metode addTwo():"); System.out.println("x = " + this.x + ", y = " + this.y); add(this); // kirim instance saat ini System.out.println("Setelah mengirimkan this ke metode addTwo():"); System.out.println("x = " + this.x + ", y = " + this.y); } void add(ThisExample o){ o.x += 2; o.y += 2; } } class Main { public static void main(String[] args) { new ThisExample(1, -2); } }

Output:

Sebelum mengirimkan this ke metode addTwo(): x = 1, y = -2 Setelah mengirimkan this ke metode addTwo(): x = 3, y = 0

Di sini, metode add menerima instance objek yang sama dan memperbarui field-nya secara langsung.


java

  1. Menguasai Kata Kunci this C#
  2. Menguasai Operator Java: Tipe, Sintaks, & Contoh Praktis
  3. Komentar Java: Tipe, Penggunaan, dan Best Practices
  4. Menguasai Java Enhanced For Loop: Sintaks, Contoh, dan Best Practices
  5. Menguasai Konstruktor Java: Tipe, Penggunaan, dan Contoh Praktis
  6. Menguasai String Java: Pembuatan, Metode, dan Best Practices
  7. Kata Kunci Java this: Penggunaan Praktis, Konstruktor, dan Lainnya
  8. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  9. Menguasai Antarmuka Java: Konsep, Implementasi, dan Praktik Terbaik
  10. Menguasai Enkapsulasi Java: Panduan Praktis untuk Penyembunyian Data