Rumah > Java > javaTutorial > Java Constructors: Apakah Perbezaan Antara Void dan Non-Void Constructors?

Java Constructors: Apakah Perbezaan Antara Void dan Non-Void Constructors?

Mary-Kate Olsen
Lepaskan: 2024-12-05 13:13:14
asal
685 orang telah melayarinya

Java Constructors: What's the Difference Between Void and Non-Void Constructors?

Pembina dalam Java: "Void" lwn. "Non-Void"

Dalam bahasa pengaturcaraan Java, kelas boleh mempunyai pembina, yang ialah kaedah khas yang dipanggil apabila contoh kelas dibuat. Pembina berfungsi untuk memulakan keadaan objek. Terdapat dua jenis pembina: pembina "void" dan pembina "non-void".

Pembina "Non-Void"

Pembina "non-void" mengisytiharkan jenis pulangan selain batal. Dalam erti kata lain, ia mengembalikan nilai, biasanya contoh kelas itu sendiri. Apabila pembina "non-void" dipanggil, objek baharu dicipta dan nilai yang dikembalikan diberikan kepada pembolehubah rujukan yang memanggil pembina.

"Void" Constructors

Pembina "Void", sebaliknya, tidak mengisytiharkan jenis pulangan. Sebaliknya, mereka hanya melaksanakan badan pembina dan memulakan keadaan objek. Mereka tidak mengembalikan nilai, dan oleh itu tidak boleh digunakan untuk mencipta objek baharu.

Isu Keterlihatan Pembina

Di Java, pembina tidak mempunyai pengubah suai akses yang sama seperti kaedah. Keterlihatan pembina mesti sepadan dengan keterlihatan kelas itu sendiri. Contohnya, jika kelas diisytiharkan awam, maka pembinanya juga mesti diisytiharkan awam.

Contoh: Kesan Keterlihatan Pembina

Pertimbangkan dua coretan kod berikut:

Contoh 1: Pembina dengan Pulangan Taip

public class Class1 {
    public static Integer value = 0;
    public Class1() { da(); }
    public int da() {
        Class1.value += 1;
        return 5;
    }
    public static void main(String[] args) {
        Class1 h = new Class1();
        Class1 h2 = new Class1();
        System.out.println(Class1.value);
    }
}
Salin selepas log masuk

Contoh 2: Pembina dengan Jenis Pengembalian Void

public class Class1 {
    public static Integer value = 0;
    public void Class1() { da(); }
    public int da() {
        Class1.value += 1;
        return 5;
    }
    public static void main(String[] args) {
        Class1 h = new Class1();
        Class1 h2 = new Class1();
        System.out.println(Class1.value);
    }
}
Salin selepas log masuk

Pemerhatian:

Dalam Contoh 1, output ialah 2. Ini kerana pembina memanggil kaedah da(), yang menambah medan nilai sebanyak 1.

Walau bagaimanapun, dalam Contoh 2, output ialah 0. Ini kerana pembina dengan jenis pengembalian void sebenarnya tidak memanggil kaedah da(). Sebaliknya, ia adalah kaedah dengan nama yang sama dengan kelas, yang berbeza daripada pembina.

Kesimpulan:

Di Java, pembina bukan kaedah. Ia digunakan untuk memulakan keadaan objek dan tidak mempunyai jenis pulangan. Percubaan untuk mengisytiharkan pembina dengan jenis pemulangan selain daripada batal akan mengakibatkan ralat penyusunan.

Atas ialah kandungan terperinci Java Constructors: Apakah Perbezaan Antara Void dan Non-Void Constructors?. 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