Rumah >Java >javaTutorial >Pembina Java: Apakah Perbezaan Antara Pembina \'void\' dan \'non-void\'?

Pembina Java: Apakah Perbezaan Antara Pembina \'void\' dan \'non-void\'?

Barbara Streisand
Barbara Streisandasal
2024-11-27 12:06:14624semak imbas

Java Constructors: What's the Difference Between

Memahami Pembina Java: "void" vs. "non-void"

Di Java, pembina ialah kaedah khas yang memulakan contoh kelas. Tidak seperti kaedah biasa, pembina tidak menentukan jenis pulangan; sebaliknya, mereka mempunyai nama yang sama dengan kelas itu sendiri. Walau bagaimanapun, Java membenarkan kekeliruan dengan membenarkan apa yang dipanggil pembina "void".

Contoh 1: Non-Void Constructor

Dalam kod berikut, kelas pembina1( ) diisytiharkan tanpa menyatakan pulangan jenis:

public class class1 {
    public static Integer value = 0;
    public class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 2
    }
}

Penjelasan:

  • Pembina class1() memulakan medan statik nilai kepada 0.
  • Apabila kejadian h dan h2 kelas1 dicipta, pembina dipanggil.
  • Kaedah da() nilai kenaikan, menghasilkan nilai akhir sebanyak 2.

Contoh 2: Void Constructor

Sekarang pertimbangkan kod ini dengan "kosong" pembina:

public class class1 {
    public static Integer value = 0;
    public void class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 0
    }
}

Penjelasan:

  • Pembina "void" class1() tidak memulakan medan nilai atau memanggil sebarang kaedah.
  • Apabila contoh h dan h2 dicipta, pembina lalai dipanggil, yang tidak melakukan apa-apa permulaan.
  • Oleh itu, medan nilai kekal pada nilai awalnya 0.

Kesimpulan:
Di Java, pembina yang mengisytiharkan jenis pulangan , walaupun ia tidak sah, sama sekali bukan pembina. Mereka hanyalah kaedah. Pembina sebenar, yang memulakan contoh kelas, tidak sekali-kali menentukan jenis pulangan. Jika tiada pembina ditakrifkan secara eksplisit, Java secara automatik menambah pembina lalai yang tidak melakukan permulaan. Memahami perbezaan ini adalah penting untuk permulaan kelas yang betul dalam Java.

Atas ialah kandungan terperinci Pembina Java: Apakah Perbezaan Antara Pembina \'void\' dan \'non-void\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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