Dalam bahasa Java, semua variabel harus dideklarasikan sebelum digunakan. Format dasar untuk mendeklarasikan variabel adalah sebagai berikut:
type identifier [ = value][, identifier [= value] ...] ;
Deskripsi format: tipe adalah tipe data Java. pengenal adalah nama variabel. Beberapa variabel bertipe sama dapat dideklarasikan dengan dipisahkan dengan koma.
Di bawah ini tercantum beberapa contoh deklarasi variabel. Perhatikan bahwa beberapa menyertakan proses inisialisasi.
int a, b, c; // 声明三个int型整数:a、b、c。 int d = 3, e, f = 5; // 声明三个整数并赋予初值。 byte z = 22; // 声明并初始化z。 double pi = 3.14159; // 声明了pi。 char x = 'x'; // 变量x的值是字符'x'。
Tipe variabel yang didukung oleh bahasa Java adalah:
- Variabel lokal: Variabel dalam metode suatu kelas.
- Variabel instan: variabel yang tidak bergantung pada metode, tetapi tanpa modifikasi statis.
- Variabel kelas: variabel yang tidak bergantung pada metode, dimodifikasi dengan statis.
public class Variable{ static int allClicks=0; // 类变量String str="hello world"; // 实例变量public void method(){ int i =0; // 局部变量} }
Variabel lokal Java
- Variabel lokal dideklarasikan dalam metode, konstruktor, atau blok pernyataan;
- Variabel lokal dibuat ketika metode, konstruktor, atau blok pernyataan dijalankan, variabel tersebut akan dimusnahkan;
- Pengubah akses tidak dapat digunakan pada variabel lokal;
- Variabel lokal hanya terlihat dalam metode, konstruktor, atau blok pernyataan di mana variabel tersebut dideklarasikan;
- Variabel lokal dialokasikan pada tumpukan.
- Variabel lokal tidak memiliki nilai default, sehingga setelah variabel lokal dideklarasikan, variabel tersebut harus diinisialisasi terlebih dahulu sebelum dapat digunakan.
Contoh 1
Dalam contoh berikut age adalah variabel lokal. Hal ini didefinisikan dalam metode pupAge(), dan cakupannya terbatas pada metode ini.
public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Puppy age is: 7
Contoh 2
Pada contoh berikut variabel age tidak diinisialisasi, sehingga terjadi kesalahan saat kompilasi.
public class Test{ public void pupAge(){ int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
variabel instan
- Variabel instan dideklarasikan di dalam kelas, tetapi di luar metode, konstruktor, dan blok pernyataan;
- Ketika suatu objek dipakai, nilai setiap variabel instan ditentukan;
- Variabel instan dibuat saat objek dibuat dan dimusnahkan saat objek dimusnahkan;
- Nilai variabel instan harus direferensikan oleh setidaknya satu metode, konstruktor, atau blok pernyataan, sehingga pihak luar dapat memperoleh informasi variabel instan melalui metode tersebut;
- Variabel instan dapat dideklarasikan sebelum atau sesudah digunakan;
- Pengubah akses dapat mengubah variabel instan;
- Variabel instan dapat dilihat oleh metode, konstruktor, atau blok pernyataan di kelas. Secara umum, variabel instan harus dijadikan pribadi. Variabel instan dapat dibuat terlihat oleh subkelas dengan menggunakan pengubah akses;
- Variabel instan memiliki nilai default. Nilai default variabel numerik adalah 0, nilai default variabel Boolean adalah false, dan nilai default variabel tipe referensi adalah null. Nilai suatu variabel dapat ditentukan pada saat deklarasi atau di konstruktor;
- Variabel instan dapat diakses langsung melalui nama variabel. Namun dalam metode statis dan kelas lainnya, Anda harus menggunakan nama yang sepenuhnya memenuhi syarat: ObjectReference.VariableName.
Contoh:
import java.io.*; public class Employee{ // 这个成员变量对子类可见public String name; // 私有变量,仅在该类可见private double salary; //在构造器中对name赋值public Employee (String empName){ name = empName; } //设定salary的值public void setSalary(double empSal){ salary = empSal; } // 打印信息public void printEmp(){ System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]){ Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
name : Ransika salary :1000.0
Variabel kelas (variabel statis)
- Variabel kelas juga disebut variabel statis dan dideklarasikan dengan kata kunci statis di dalam kelas, tetapi harus berada di luar metode, konstruktor, dan blok pernyataan.
- Tidak peduli berapa banyak objek yang dibuat suatu kelas, kelas tersebut hanya memiliki satu salinan variabel kelas.
- Variabel statis jarang digunakan kecuali jika dinyatakan sebagai konstanta. Konstanta mengacu pada variabel yang dideklarasikan sebagai tipe publik/pribadi, final, dan statis. Konstanta tidak dapat diubah setelah inisialisasi.
- Variabel statis disimpan di tempat penyimpanan statis. Seringkali dideklarasikan sebagai konstanta, variabel jarang dideklarasikan menggunakan static saja.
- Variabel statis dibuat pada awal program dan dimusnahkan pada akhir program.
- Memiliki visibilitas serupa dengan variabel instan. Namun agar dapat terlihat oleh pengguna kelas, sebagian besar variabel statis dideklarasikan sebagai tipe publik.
- Nilai default mirip dengan variabel instan. Nilai default variabel numerik adalah 0, nilai default variabel Boolean adalah false, dan nilai default tipe referensi adalah null. Nilai suatu variabel dapat ditentukan saat mendeklarasikannya atau di konstruktor. Selain itu, variabel statis juga dapat diinisialisasi dalam blok pernyataan statis.
- Variabel statis dapat diakses melalui: ClassName.VariableName.
- Ketika variabel kelas dideklarasikan sebagai tipe final public static, maka nama variabel kelas harus menggunakan huruf besar. Jika variabel statis bukan bertipe publik dan final, metode penamaannya konsisten dengan metode penamaan variabel instan dan variabel lokal.
Contoh:
import java.io.*; public class Employee{ //salary是静态的私有变量private static double salary; // DEPARTMENT是一个常量public static final String DEPARTMENT = "Development "; public static void main(String args[]){ salary = 1000; System.out.println(DEPARTMENT+"average salary:"+salary); } }
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Development average salary:1000
Catatan: Jika kelas lain ingin mengakses variabel ini, mereka dapat mengaksesnya seperti ini: Employee.DEPARTMENT.
Pada bab ini kita mempelajari tentang tipe variabel Java, dan pada bab berikutnya kita akan memperkenalkan penggunaan pengubah Java.