Rumah > Java > javaTutorial > Blok Permulaan Statik vs. Bukan Statik di Java: Apakah Perbezaannya?

Blok Permulaan Statik vs. Bukan Statik di Java: Apakah Perbezaannya?

Mary-Kate Olsen
Lepaskan: 2024-12-31 13:33:17
asal
683 orang telah melayarinya

Static vs. Non-Static Initialization Blocks in Java: What's the Difference?

Blok Kod Permulaan Statik lwn. Blok Kod Permulaan Bukan Statik

Di Java, anda boleh mengisytiharkan blok kod dalam kelas yang dilaksanakan semasa kelas permulaan atau instantiasi objek. Walaupun kedua-dua jenis blok kod boleh digunakan untuk melakukan tindakan tertentu, ia berbeza dalam skop dan gelagatnya.

Blok Kod Permulaan Statik

Blok kod permulaan statik ialah diisytiharkan dengan kata kunci statik sebelum pendakap kerinting pembukaan {. Ia dikaitkan dengan kelas itu sendiri, bukan dengan mana-mana objek tertentu. Blok kod ini dilaksanakan sekali sahaja, apabila kelas dimuatkan oleh Mesin Maya Java (JVM). Ia biasanya digunakan untuk memulakan pemalar peringkat kelas, seperti pembolehubah akhir statik.

Sebagai contoh:

public class Test {
    private static final int a;
    
    static {
        a = 5;
        doSomething(a);
    }

    private static int doSomething(int x) {
        return (x+5);
    }
}
Salin selepas log masuk

Dalam contoh ini, blok permulaan statik memulakan pembolehubah akhir statik a dengan nilai 5 dan memanggil kaedah doSomething. Memandangkan ia statik, ia boleh mengakses pembolehubah statik a dari dalam blok.

Blok Kod Permulaan Bukan Statik

Blok kod permulaan bukan statik, juga dikenali sebagai blok permulaan contoh, diisytiharkan tanpa kata kunci statik. Ia dikaitkan dengan objek dan dilaksanakan setiap kali objek kelas itu dicipta. Blok kod ini biasanya digunakan untuk memulakan pembolehubah peringkat contoh atau melakukan sebarang persediaan yang diperlukan untuk objek.

Contohnya:

public class Test {
    private int a;
    
    {
        a = 5;
        doSomething(a);
    }

    private void doSomething(int x) {
        // ...
    }
}
Salin selepas log masuk

Dalam contoh ini, blok permulaan bukan statik memulakan pembolehubah instance a dengan nilai 5 dan memanggil kaedah doSomething. Memandangkan ia bukan statik, ia hanya boleh mengakses pembolehubah contoh objek semasa.

Tujuan dan Dokumentasi

Blok kod permulaan statik berguna untuk menyediakan kelas -pemalar luas dan melaksanakan tugas yang perlu dilakukan semasa pemuatan kelas. Ia boleh digunakan untuk tugas seperti mengesahkan parameter input, mendaftarkan pengendali acara atau memulakan rangka kerja pengelogan.

Blok kod permulaan bukan statik digunakan untuk memulakan pembolehubah peringkat contoh dan melaksanakan sebarang persediaan yang diperlukan untuk objek. Ia boleh digunakan untuk tugas seperti menetapkan nilai lalai, mengesahkan input atau mencipta objek kanak-kanak.

Dokumentasi untuk blok kod permulaan statik dan bukan statik boleh didapati dalam Spesifikasi Bahasa Java (JLS), khususnya dalam bahagian yang merangkumi Permulaan Kelas dan Permulaan Contoh.

Atas ialah kandungan terperinci Blok Permulaan Statik vs. Bukan Statik di Java: Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan