Memahami Variabel, Constant dan Method Static Pada Java

Apa itu variabel static? Variabel static adalah variabel yang di-share oleh semua objek dalam suatu class.

Apa itu method static? Method static adalah method yang dapat digunakan tanpa harus membuat objek dari class. Jadi, jika anda menginginkan semua objek dari class untuk berbagi data, maka gunakanlah variabel static, yang juga dikenal dengan sebutan variabel class.

Variabel static ini menyimpan nilainya di lokasi memori yang umum. Oleh karena itu, jika satu objek mengubah nilai dari variabel tersebut, maka semua objek dari class yang sama akan terkena dampaknya.

Lantas bagaimana dengan method static yang juga dikenal dengan method class? Bahasa Java juga mendukung method static sebagaimana halnya dengan variabel static.

variabel_method_static_java


Dan yang perlu diingat adalah:

Method static dapat dipanggil tanpa harus membuat objek atau instance dari class.

Variabel static


Untuk lebih jelasnya mengenai variabel static, perhatikan contoh di bawah ini:

Output:
Objek buah_1 menghitung :5 
Objek buah_2 menghitung :5 
Objek buah_3 menghitung :5 
Objek buah_4 menghitung :5 
Objek buah_5 menghitung :5

Dari output tersebut anda bisa memahami bahwa class dan object berbagi salinan yang sama dari variabel static, oleh karena itu mereka menampilkan hasil berupa nilai yang sama dari hitung.

Ada 3 hal yang perlu diketahui dalam inisialisasi variabel static, yaitu:
  • Variabel static akan diinisialisasi ketika class di-load.
  • Variabel static dalam suatu class diinisialisasi sebelum objek apapun dari class tersebut dapat dibuat
  • Variabel static dalam suatu class diinisialisasi sebelum method static apapun dalam class dijalankan.
Sedangkan nilai default dari variabel static dan non-static adalah sama, misalnya:

referensi objek : null
boolean : false
float : 0.0
double : 0.0
long : 0
int : 0
short : 0

Method static

Pada program menghitung jumlah jawaban ujian siswa sebelumnya, anda dapat menemukan beberapa method static dalam kode programnya, dan anda melihat pada program tersebut tidak ada objek yang dibuat.

Untuk lebih memahami method static, anda bisa melihat contoh di bawah ini:

Dan berikut ini adalah class TestBuah untuk mendemonstrasikan class Buah :
Output:
Sebelum objek di buat 
Jumlah objek sekarang adalah 0
  
Setelah membuat objek buah_1 
Nama buah_1 adalah Apel dan jumlah objek sekarang adalah 1

Setelah membuat objek buah_2 dan memodifikasi nama buah_1 
Nama buah_1 adalah Jeruk dan jumlah objek sekarang adalah 2 
Nama buah_2 adalah Mangga dan jumlah objek sekarang adalah 2

Sekarang anda bisa memahami, bahwa method instance yaitu getNamaBuah() dan variabel instance yaitu nama adalah milik objek, dan hanya dapat digunakan setelah objek dibuat. Nilai dari variabel ini disimpan dalam memori terpisah untuk masing-masing objek dan mereka diakses melalui variabel referensi objek. Oleh karena itu, objek buah_1 dan buah_2 dapat memiliki nama yang berbeda.

Sedangkan method static, getJumlahObjek() dan variabel static hitung dapat diakses dari variabel referensi objek ataupun dari nama class-nya. Variabel static ini nilainya disimpan dalam memori umum yang sama, maka nilai variabel jumlah adalah 1 ketika objek buah_1 dibuat, dan nilainya menjadi 2 ketika objek buah_2 dibuat.

Hubungan antara anggota static dan instance dijelaskan dalam tabel di bawah ini:

method_static_java

Variabel static final

Variabel static final adalah constant, perhatikan kode di bawah ini:

public class Buah {
    //Variabel static final adalah constant
    public static final int BERAT_BUAH = 1;
}


Penulisan variabel untuk constant ini harus menggunakan huruf kapital, dan anda bisa menggunakan tanda _ sebagai penghubung, contohnya seperti: BERAT_BUAH.

Yang harus diketahui dari variabel static final di atas adalah:
  • Kode di atas akan dieksekusi segera setelah class Buah di load, sebelum method static dipanggil, dan bahkan sebelum variabel static apapun digunakan.
  • Variabel BERAT_BUAH diatas adalalah public, yang berarti setiap class dapat menggunakannya. Ini adalah variabel static, sehingga anda tidak memerlukan objek apapun dari class untuk dapat mengaksesnya. Selain itu, variabel ini juga adalah final, sehingga nilainya tidak dapat diubah dalam class Buah atau dalam class manapun.

Catatan:

Variabel static final selalu memerlukan inisialisasi sebelum digunakan. Jika anda tidak memberikan nilai sebelum digunakan, maka akan menimbulkan error.


Tidak ada komentar

Bahasa Java. Diberdayakan oleh Blogger.