Rumah >Java >javaTutorial >Apakah Perbezaan Antara Pembina Lalai dan Ditakrifkan Pengguna di Java?

Apakah Perbezaan Antara Pembina Lalai dan Ditakrifkan Pengguna di Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-22 07:13:13829semak imbas

What's the Difference Between Default and User-Defined Constructors in Java?

Pembina Lalai dalam Java

Di Java, pembina lalai dijana secara automatik jika tiada pembina lain ditakrifkan. Ia adalah pembina tanpa hujah yang memulakan medan kepada nilai lalainya. Kod berikut tidak mentakrifkan pembina lalai:

public Module() {
   this.name = "";
   this.credits = 0;
   this.hours = 0;
}

Ini ialah pembina yang ditentukan pengguna yang mengambil hujah. Pembina lalai akan kelihatan seperti ini:

public Module() {}

Atau, jika jenis medan adalah primitif:

public Module() {
   super();
   this.name = null;
   this.credits = 0;
   this.hours = 0;
}

Perbezaan Utama

Yang utama perbezaan antara pembina lalai dan pembina yang ditentukan pengguna ialah:

  • Pembina lalai tidak memerlukan hujah, manakala pembina yang ditentukan pengguna boleh mempunyai hujah.
  • Pembina lalai secara automatik memulakan medan kepada nilai lalainya (cth., nol untuk objek, 0 untuk primitif berangka), manakala pembina yang ditentukan pengguna membenarkan tersuai pemula.

Pembina Lalai lwn. Tiada Pembina

Tidak mempunyai pembina langsung adalah bersamaan dengan mempunyai pembina lalai. Apabila tiada pembina, pengkompil Java secara automatik menjana satu lalai tanpa argumen dan tiada pemulaan medan.

Nota:

  • Jika mana-mana pembina ditakrifkan dalam kelas, pembina lalai tidak dijana.
  • Pembina lalai hanya boleh dibuat secara tersirat, bukan secara eksplisit.

Atas ialah kandungan terperinci Apakah Perbezaan Antara Pembina Lalai dan Ditakrifkan Pengguna di Java?. 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