Variabel (peubah) adalah suatu lokasi di memori, di mana interpretasinya bergantung pada kelas penyimpanan—yang ditentukan berdasarkan keyword dan konteks deklarasinya—dan tipenya. Pada dasarnya, setiap variabel memiliki nama (yang dikenal sebagai identifier), tipe, dan ruang lingkup (scope) atau visibilitas (visibility).

Secara umum, sebenarnya kita tidak akan mengalami kesulitan ketika ingin mendeklarasikan suatu variabel. Meski demikian, alangkah baiknya jika kita memahami aturan-aturan standar dan jenis-jenis variabel di Java.

* Deklarasi

Deklarasi variabel dilakukan untuk menyimpan suatu penempatan di memori, memberinya nama, dan mendefinisikan tipe data yang dapat digunakan di variabel tersebut. Dengan demikian, deklarasi minimal mendefinisikan tipe data dan nama (identifier).

int i;

int j;

Pada kasus tipe referensi, deklarasi variabel mendeklarasikan variabel object reference. Dalam konteks Java, referensi objek adalah sebuah nilai yang menyatakan suatu objek.

Point p;

Sebenarnya kita juga bisa mendeklarasikan lebih dari satu variabel dalam satu baris, namun cara ini kurang disukai.

int i, j;

Tidak seperti bahasa C dan C++, yang membedakan istilah deklarasi dan definisi, di Java tidak ada deklarasi yang terpisah dari definisi.

* Jenis dan Scope

Java mendefinisikan empat jenis variabel, meliputi variabel instans (field nonstatis), variabel kelas (field statis), variabel lokal, dan parameter.

Java juga menggunakan istilah field, data member, dan member variable yang mengacu pada variabel instans (instance) dan variabel kelas. Selain itu, istilah variabel sendiri juga kerap digunakan, di mana ia mengacu pada semua jenis variabel.

Lokasi di mana suatu variabel dideklarasikan secara implisit juga menetapkan ruang lingkupnya. Ruang lingkup variabel didefinisikan sebagai blok kode di mana variabel dapat diacu melalui namanya. Dengan demikian, ruang lingkup variabel instans dan variabel kelas mencakup seluruh body kelas.

* Inisialisasi

Setelah mendeklarasikan variabel, kita juga bisa melanjutkan inisialisasi untuk menspesifikasikan initial value bagi variabel. Langkah ini dilakukan dengan menugaskan (meng-assign) nilai ke variabel; proses ini dikenal sebagai penugasan (assignment).

int i = 10;

Dalam kasus variabel lokal, inisialisasi mutlak diperlukan sebelum variabel dapat digunakan. Kondisi ini sangat kontras sekali dengan field, di mana nilai default yang akan digunakan sebagai nilai awal jika variabel tidak diinisialisasi. Penggunaan variabel lokal tanpa inisialisasi berpotensi memicu kesalahaan saat kompilasi.

* Access Modifier

Access modifier (atau specifier) menyatakan apakah kelas-kelas lain dapat menggunakan variabel member ataukah tidak. Dengan demikian, dalam konteks variabel, konsep access modifier ini hanya dapat diterapkan pada field saja.

Ada empat tingkatan akses yang bisa kita gunakan untuk menspesifikasikan visibilitas suatu variabel: private, default (tidak dispesifikasikan), protected, dan public.

Access Modifier


Visibilitas
private Variabel hanya bisa diakses dari kelas yang mendeklarasikannya (current kelas).
Default Variabel dapat diakses dari current kelas dan paket.
protected Variabel dapat diakses dari current kelas, subkelas, dan paket.
public Variabel bisa diakses oleh siapa saja, baik current kelas ataupun kelas lain.

Strategi dalam menetapkan visibilitas variabel adalah menggunakan access modifier dengan tingkatan paling rendah (private).