Rumah > Java > javaTutorial > teks badan

Pembina Lebih Muatan dan Rantaian Pembina.

Patricia Arquette
Lepaskan: 2024-11-06 13:18:02
asal
230 orang telah melayarinya

Overloading Constructors and Constructor Chaining.

Perhatikan bahawa:

  • Mempunyai pembina peribadi dalam kelas memberitahu pengkompil untuk tidak menyediakan pembina tanpa hujah lalai.

  • Pembina persendirian tidak boleh dibuat seketika.

  • ini() mestilah pernyataan pertama yang tidak diulas dalam pembina. Komen tidak kira ia dibenarkan di mana-mana sahaja.

Apakah yang dimaksudkan dengan lebihan beban pembinaan?

Pembebanan konstruktor dalam Java merujuk kepada penggunaan lebih daripada satu pembina dalam kelas contoh. Walau bagaimanapun, setiap pembina yang terlebih beban mesti mempunyai tandatangan yang berbeza. Untuk kompilasi berjaya, setiap pembina mesti mengandungi senarai argumen yang berbeza.

Anda boleh mempunyai berbilang pembina dalam kelas yang sama asalkan mereka mempunyai tandatangan kaedah yang berbeza. Apabila membebankan kaedah, nama kaedah dan senarai parameter perlu dipadankan. Dengan pembina, nama sentiasa sama kerana ia mesti sama dengan nama kelas. Pembina mesti mempunyai parameter yang berbeza agar lebih muatan.

 public class Hamster {
   private String color;
   private int weight;
   public Hamster(int weight) { // first constructor
      this.weight = weight;
      color = "brown";
   }
   public Hamster(int weight, String color) { // second constructor
      this.weight = weight;
      this.color = color;
   }
}
Salin selepas log masuk

Dalam perkara di atas, salah satu pembina mengambil satu parameter int. Yang lain mengambil int dan String. Senarai parameter ini berbeza, jadi pembina berjaya dibebankan.
Terdapat masalah di sini, walaupun. Terdapat sedikit pertindihan. Apa yang kita mahukan ialah pembina pertama memanggil pembina kedua dengan
dua parameter.

Penjalinan pembina
Ia adalah apabila pembina terlebih beban memanggil satu sama lain. Satu teknik biasa ialah mempunyai setiap
pembina menambah satu parameter sehingga sampai ke pembina yang melakukan semua kerja.

public class Mouse {
   private int numTeeth;
   private int numWhiskers;
   private int weight;
   public Mouse(int weight) {
      this(weight, 16); // calls constructor with 2 parameters
   }
   public Mouse(int weight, int numTeeth) {
      this(weight, numTeeth, 6); // calls constructor with 3 parameters
   }
   public Mouse(int weight, int numTeeth, int numWhiskers) {
      this.weight = weight;
      this.numTeeth = numTeeth;
      this.numWhiskers = numWhiskers;
   }
   public void print() {
      System.out.println(weight + " " + numTeeth + " " + numWhiskers);
   }
   public static void main(String[] args) {
      Mouse mouse = new Mouse(15);
      mouse.print();
   }
}
Salin selepas log masuk

hasil: 15 16 6

Kaedah main() memanggil pembina dengan satu parameter. Pembina itu menambah nilai berkod keras kedua dan memanggil pembina dengan dua
parameter. Pembina itu menambah satu lagi nilai berkod keras dan memanggil pembina
dengan tiga parameter. Pembina tiga parameter menetapkan pembolehubah contoh.

Penjalinan konstruktor digunakan apabila anda ingin memanggil pembina
dalam pembina lain.

Faedah Gabungan Lebih Muatan dan Rantai

Bersama-sama, beban lampau dan rantaian pembina memberikan fleksibiliti, kecekapan dan kod yang boleh diselenggara. Lebihan beban membolehkan anda menyokong pelbagai senario permulaan, manakala rantaian memastikan anda boleh memusatkan logik dikongsi dan mengurangkan lebihan.

Atas ialah kandungan terperinci Pembina Lebih Muatan dan Rantaian Pembina.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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