Rumah >Java >javaTutorial >Apakah Perbezaan Antara Pembina Void dan Non-Void di Java?
Di Java, pembina menjalankan peranan unik, berbeza daripada kaedah. Walaupun ia berkongsi nama yang sama dengan kelas yang dimulakan, ia tidak mempunyai jenis pemulangan dan bertanggungjawab sepenuhnya untuk pemulaan objek. Tidak seperti kaedah, pembina tidak mengikut prinsip lebihan muatan kaedah.
Untuk menggambarkan konsep ini, pertimbangkan coretan kod berikut:
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); } }
Dalam coretan ini, pembina bukan lompang diisytiharkan . Output program adalah 2, seperti yang dijangkakan. Walau bagaimanapun, pertimbangkan kod yang diubah suai berikut:
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); } }
Dalam coretan diubah suai ini, pembina telah diisytiharkan sebagai tidak sah. Hasilnya? Outputnya kini 0. Tingkah laku ini berpunca daripada fakta bahawa apabila mengisytiharkan pembina dengan jenis pulangan tidak sah, ia pada dasarnya bukan lagi pembina tetapi sebaliknya kaedah biasa. Oleh itu, ia tidak mempunyai keupayaan untuk melakukan pemulaan objek.
Dalam Java, kelas boleh mempunyai berbilang pembina, setiap satu dengan argumen yang berbeza (senarai parameter), tetapi hanya satu pembina tanpa argumen (pembina lalai) . Jika kelas tidak mentakrifkan mana-mana pembina, pengkompil secara automatik memasukkan pembina lalai tanpa argumen.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Pembina Void dan Non-Void di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!