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.
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; } }
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(); } }
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!