Beban Konstruktor di Java: Apa itu & Contoh Program

Isi kandungan:

Anonim

Apa itu Konstruktor di Jawa?

CONSTRUCTOR adalah kaedah khas yang digunakan untuk menginisialisasi objek yang baru dibuat dan dipanggil tepat setelah memori diperuntukkan untuk objek tersebut. Ini dapat digunakan untuk menginisialisasi objek ke nilai yang diinginkan atau nilai lalai pada saat penciptaan objek. Pengkod tidak wajib menulis konstruktor untuk kelas.

Sekiranya tidak ada konstruktor yang ditentukan pengguna disediakan untuk kelas, penyusun memulakan pemboleh ubah anggota ke nilai lalai.

  • jenis data berangka ditetapkan ke 0
  • jenis data char ditetapkan kepada watak null ('\ 0')
  • pemboleh ubah rujukan ditetapkan kepada nol

Dalam tutorial ini, anda akan belajar-

  • Peraturan untuk membuat Pembina
  • Beban Konstruktor di Jawa
  • Rantai Pembina

Peraturan untuk membuat Java Constructor

  1. Ia mempunyai nama yang sama dengan kelas
  2. Nilai tidak boleh mengembalikan nilai bahkan tidak kosong

Contoh 1 : Buat Pembina Pertama anda di Java

Langkah 1) Taipkan program konstruktor berikut dalam penyunting Java.

class Demo{int value1;int value2;Demo(){value1 = 10;value2 = 20;System.out.println("Inside Constructor");}public void display(){System.out.println("Value1 === "+value1);System.out.println("Value2 === "+value2);}public static void main(String args[]){Demo d1 = new Demo();d1.display();}}

Langkah 2) Simpan, Jalankan & Kompilasi program konstruktor di Java dan perhatikan hasilnya.

Pengeluaran:

Inside ConstructorValue1 === 10Value2 === 20

Beban Konstruktor di Jawa

Overloading Konstruktor Java adalah teknik di mana kelas boleh mempunyai sejumlah konstruktor yang berbeza dalam senarai parameter. Penyusun membezakan pembina ini dengan mengambil kira bilangan parameter dalam senarai dan jenisnya.

Contoh pembina yang sah untuk Akaun kelas adalah

Account(int a);Account (int a,int b);Account (String a,int b);

Contoh 2 : Untuk memahami Overloading Konstruktor di Java

Langkah 1) Taipkan kod dalam penyunting.

class Demo{int value1;int value2;/*Demo(){value1 = 10;value2 = 20;System.out.println("Inside 1st Constructor");}*/Demo(int a){value1 = a;System.out.println("Inside 2nd Constructor");}Demo(int a,int b){value1 = a;value2 = b;System.out.println("Inside 3rd Constructor");}public void display(){System.out.println("Value1 === "+value1);System.out.println("Value2 === "+value2);}public static void main(String args[]){Demo d1 = new Demo();Demo d2 = new Demo(30);Demo d3 = new Demo(30,40);d1.display();d2.display();d3.display();}}

Langkah 2) Simpan, Susun & Jalankan Kod.

Langkah 3) Ralat =?. Cuba dan nyahpepijat ralat sebelum meneruskan ke langkah seterusnya pembebanan pembangun Java

Langkah 4) Setiap kelas mempunyai Konstruktor lalai di Java. Lalai beban pembina Java untuk kelas Demo adalah Demo () . Sekiranya anda tidak menyediakan konstruktor ini, penyusun membuatnya untuk anda dan memulakan pemboleh ubah ke nilai lalai. Anda boleh memilih untuk mengganti konstruktor lalai ini dan memulakan pemboleh ubah ke nilai yang anda mahukan seperti yang ditunjukkan dalam Contoh 1.

Tetapi jika anda menentukan konstruktor parametrized seperti Demo (int a), dan ingin menggunakan Java Demo konstruktor lalai (), adalah wajib bagi anda untuk menentukannya.

Dengan kata lain, sekiranya konstruktor anda yang berlebihan di Java diganti, dan anda ingin menggunakan Java konstruktor lalai, itu perlu dinyatakan.

Langkah 5) Garis penangguhan # 4-8. Simpan, Susun & Jalankan kod.

Rantai Pembina

Pertimbangkan senario di mana kelas asas diperluas oleh anak. Setiap kali objek kelas anak dibuat, pembina kelas induk dipanggil terlebih dahulu. Ini dipanggil Pembina rantai.

Contoh 3: Untuk memahami rantai konstruktor

Langkah 1) Salin kod berikut ke dalam editor.

class Demo{int value1;int value2;Demo(){value1 = 1;value2 = 2;System.out.println("Inside 1st Parent Constructor");}Demo(int a){value1 = a;System.out.println("Inside 2nd Parent Constructor");}public void display(){System.out.println("Value1 === "+value1);System.out.println("Value2 === "+value2);}public static void main(String args[]){DemoChild d1 = new DemoChild();d1.display();}}class DemoChild extends Demo{int value3;int value4;DemoChild(){//super(5);value3 = 3;value4 = 4;System.out.println("Inside the Constructor of Child");}public void display(){System.out.println("Value1 === "+value1);System.out.println("Value2 === "+value2);System.out.println("Value1 === "+value3);System.out.println("Value2 === "+value4);}}

Langkah 2) Jalankan Kod. Oleh kerana rantai konstruktor, apabila objek DemoChild kelas kanak-kanak dibuat, Demo konstruktor () kelas induk dipanggil pertama dan kemudian DemoChild konstruktor () anak dibuat. Hasil yang dijangkakan =

Inside 1st Parent ConstructorInside the Constructor of ChildValue1 === 1Value2 === 2Value1 === 3Value2 === 4

Langkah 3) Anda mungkin melihat pembangun demo kelas induk diganti. Bagaimana jika anda mahu memanggil Demo konstruktor yang diganti (int a) dan bukannya Demo konstruktor lalai () semasa objek anak anda dibuat?

Dalam kes sedemikian, anda boleh menggunakan kata kunci "super" untuk memanggil pembina yang diganti kelas induk.

Sintaks: -

super();--or--super(parameter list);

Contoh: Sekiranya konstruktor anda seperti Demo (String Name, int a) anda akan menentukan super ("Java", 5) Sekiranya digunakan, kata kunci super perlu menjadi baris pertama kod dalam konstruktor kelas anak.

Langkah 4) Uncomment Line # 26 dan jalankan kodnya. Perhatikan Hasilnya.

Pengeluaran:

Inside 2nd Parent ConstructorInside the Constructor of ChildValue1 === 5Value2 === 0Value1 === 3Value2 === 4