Jumat, April 19, 2019

Memahami "static" dalam "public static void main" pada Java

Apakah "static" pada method main():

satu, main() method: main() method pada Java adalah entry point untuk JVM untuk menuju ke program Java. JVM meluncurkan program Java dengan memanggil method main() seperti diperlihatkan pada gambar 1.

JVM dan main method pada bahasa pemrograman Java
Gambar 1 JVM dan main method
sumber : geeksforgeeks.org

dua, Static adalah keyword. Peran dari penambahan static sebelum entitas apapun adalah membuat entitas dari sebuah class entity. Dengan kata lain, penambahan static sebelum method dan variabel akan menciptakan method class dan variabel class, bukan method instance dan variabel instance.

Karenaya, method static dan variabel dapat secara langsung diakses dengan bantuan dari class, artinya tidak dibutuhkan lagi penciptaan objek untuk tujuan mengakses method static atau variabel.

/* membuat fungsi sebagai static */
static void func()
{}

/* membuat variabel sebagai static */
static int var;

tiga, Method static: ketika method dideklarasikan dengan keyword static, maka method akan diidentifikasi sebagai static method. Seperti yang telah dibahas sebelumnya, setiap anggota static dapat diakses sebelum objek apapun dari class-nya diciptakan, dan tanpa referensi dari objek apapun.

/* membuat fungsi static */
class GfG
{
static void func()
{}
}

/* memanggil fungsi static */
GfG.func();

empat, Method static main(): ketika keyword static ditambahkan ke dalam fungsi definisi dari method main(), maka method tersebut akan diidentifikasi sebagai static main() method.

class GfG
{
/* membuat static main function */
public static void main(String[] args)
{}
}

lima, Kebutuhsan static dalam main() method: sejak main() method adalah entry point dari aplikasi Java apapun, karena itu membuat main() method sebagai static adalah keharusan yang harus diikuti dengan beberapa alasan:
#1, Static main() method membuat JVM lebih jelas dalam memanggil Java aplikasi. Jika tidak, maka membutuhkan persyaratan untuk spesifikasi entry function untuk setiap membangun aplikasi Java bagi JVM untuk meluncurkan aplikasi.
#2, Method adalah static karena jika tidak maka akan ambigu terhadap constructor mana yang akan dipanggil.

contoh: 
public class GfG{
protected GfG(int g){}
public void main(String[] args){
}


JVM sekarang memasuki keputusan yang ambigu apakah akan memanggil new GfG(int) atau tidak? Jika iya, mana yang akan dilewatkan untuk g? Jika tidak, maka JVM instance GfF tanpa mengeksekusi method constructor apapun.

Dan masih banyak contoh kasus lainnya bagi JVM untuk melakukan instance class sebelum entry point dipanggil. Inilah alasan kenapa main dibuat static.

#3, Method main() dibuat static karena hal tersebut lebih mudah buat JDK. Misalkan saja, jika pembuatan method main() static tidak bersifat wajib, maka hal ini hanya akan membuat IDE menjadi sulit untuk mendeteksi kelas yang akan diluncurkan pada sebuah projek. Karena hal inilah, maka method entry main() dibuat sebagai public static void main(String[] args), sehingga membuat method main() pada Java yang telah dideklarasikan dapat diakses oleh JVM secara langsung menggunakan nama class-nya sebelum objek diciptakan.





Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D

Footer Adsense