Cakupan variabel lokal dimulai dari posisi variabel tersebut dideklarasikan sampai dengan akhir dari blok metoda yang ditandai dengan closing brace (}). Cakupan dari variabel kelas meliputi keseluruhan kelas.
Pemberian nama yang sama antara variabel kelas dan variabel lokal mungkin saja terjadi. Misalnya, metoda set (mutator) yang digunakan untuk mengubah nilai variabel kelas, bisa saja mendeklarasikan parameter dengan nama sama seperti nama variabel kelas yang nilainya akan diubah.
Di dalam metoda set, untuk mengacu ke variabel kelas yang nilainya akan diubah, Anda perlu menggunakan kata kunci (keyword) this
. Bila variabel kelas tersebut dideklarasikan dengan modifier static, maka variabel kelas dapat diakses dengan nama-kelas.variabel-static
.
Di contoh program kelas Warna terdapat dua variabel kelas yaitu variabel merah dan biru. Kelas Warna juga mendeklarasikan dua metoda yaitu metoda setMerah yang memiliki parameter merah dan setBiru yang memiliki parameter biru.
Parameter kedua metoda memiliki kesamaan nama dengan dua variabel kelas atau data field dari kelas Warna. Berikut ini adalah kode program kelas Warna yang dapat memberi pemahaman lebih jelas tentang penggunaan kata kunci this untuk mengacu ke variabel kelas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // Deklarasi kelas class Warna { // Deklarasi variabel kelas (data field) int merah = 7; static double biru = 2; // Deklarasi metoda void setMerah(int merah) { this.merah = merah; } // Deklarasi metoda static static void setBiru( double biru) { Warna.biru = biru; } } |
Misalnya, c1 adalah variabel yang mengacu ke obyek dari kelas Warna. Memanggil metoda dengan pernyataan c1.setMerah(5);
sama dengan mengeksekusi c1.merah = 5;
, dimana kata kunci this diganti dengan c1.
Baris nomor 10 adalah pernyataan pemberian yaitu memberikan nilai parameter merah ke data field merah dari obyek pemanggil, misalnya c1. Sedangkan pernyataan di baris nomor 15 mempunyai arti bahwa nilai di parameter biru diberikan ke data field statik biru dari kelas Warna.
Selain menggunakan kata kunci this untuk maksud di atas, kata kunci this juga dapat digunakan di dalam konstruktor untuk memanggil konstruktor yang lain dari kelas yang sama sebagaimana contoh kode program kelas Lingkaran di bawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | // Nama file : Lingkaran.java // Mendefinisikan kelas Lingkaran // Mendeklarasikan kelas Lingkaran public class Lingkaran { // Deklarasi variabel kelas (data field) private double jari2 = 1.0; private static int jumlahObyek = 0; // Konstruktor pertama public Lingkaran() { this(1.0); Lingkaran.jumlahObyek++; } // Konstruktor kedua public Lingkaran(double jari2) { this.jari2 = (jari2 > 0) ? jari2 : 1.0; Lingkaran.jumlahObyek++; } // Mengembalikan nilai data field jari2 melalui metoda get public double getJari2() { return this.jari2; } // Merubah nilai data field melalui metoda set public void setJari2(double jari2) { this.jari2 = (jari2 > 0) ? jari2 : 1.0; } // Mengembalikan jumlah obyek lingkaran yang dibuat public static int getJumlahObyek() { return Lingkaran.jumlahObyek; } // Metoda menghitung keliling lingkaran public double hitungKeliling() { return 2 * this.jari2 * Math.PI; } // Metoda menghitung luas lingkaran public double hitungLuas() { return Math.PI * this.jari2 * this.jari2; } } |
this di pernyataan baris nomor 13 digunakan untuk memanggil kontruktor yang memiliki parameter yaitu konstruktor di baris nomor 18 - 21. this di pernyataan baris nomor 19 dan 30 digunakan untuk mengacu ke data field jari2 yang dideklarasikan di baris nomor 8 dari obyek kelas Lingkaran yang dikonstruksi.
This di pernyataan baris nomor 25, 40 dan 45 mewakili obyek dari kelas Lingkaran. Setiap instance variable yaitu variabel kelas dari kelas yang telah dikonstruksi adalah milik obyek dari kelas yang diwakili oleh kata kunci this, dimana this disini sering tidak ditulis atau diabaikan.