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. Variabel dan metoda kelas dapat dideklarasikan dengan urutan apapun.
Bila ada variabel kelas, misalnya a, yang nilai perhitungannya tergantung pada variabel kelas lain, misalnya b, maka variabel kelas b harus dideklarasikan mendahului variabel kelas a. Anda juga dapat mendeklarasikan variabel lokal dengan nama sama asalkan variabel lokal tersebut berada di dalam metoda yang berbeda.
Selain itu, Anda juga perlu untuk menghindari pemberian nama yang sama antara veriabel kelas dan variabel lokal sebuah metoda. Bila variabel kelas dan variabel lokal dideklarasikan dengan nama sama, maka variabel kelas menjadi tersembunyi (hidden class variable). Variabel lokal memiliki hak lebih tinggi (precedence) daripada variabel kelas.
Misalnya, sebuh kelas mendeklarasikan variabel kelas x dengan nilai 5 dan sebuah metoda di kelas tersebut juga mendeklarasikan variabel lokal x dengan nilai 2, maka pernyataan System.out.println (“x = “ + x);
yang ada di dalam metoda akan menampilkan nilai 2, bukan nilai 5. Berikut ini adalah contoh program Java kelas TestABC yang memberi gambaran lebih jelas tentang variabel kelas tersembunyi.
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 | // Nama file : TestABC.java // Memahami variabel kelas dan variabel lokal // Deklarasi kelas public class TestABC { // Metoda main public static void main(String[] args) { ABC objek1 = new ABC(); objek1.cetakNilaiVariabel(); } } // Mendefinisikan kelas ABC class ABC { // Deklarasi data field int a = 7; int b = 4; int c = 8; // Deklarasi metoda void cetakNilaiVariabel() { // Deklarasi variabel lokal int c = 3; System.out.println("\nMencetak Nilai variabel."); System.out.println("Nilai variabel a = " + a); System.out.println("Nilai variabel b = " + b); System.out.println("Nilai variabel c = " + c); } } |
Baris nomor 20 – 22 adalah deklarasi variabel kelas atau data field a, b dan c yang masing-masing diberi nilai int 7, 4 dan 8. Di dalam metoda cetakNilaiVariabel baris nomor 25 – 34 juga dideklarasikan variabel lokal c dengan nilai 3 (baris nomor 28).
Karena variabel lokal c mengambil atau memiliki hak lebih tinggi daripada veriabel kelas c, maka saat pernyataan untuk mencetak nilai c di baris nomor 32 dieksekusi, nilai yang tersimpan di variabel lokal c yang dicetak.