Constructor Overloading in Java: Apa itu & Contoh Program

Apa itu Pembuat di Java?

CONSTRUCTOR adalah metode khusus yang digunakan untuk menginisialisasi objek yang baru dibuat dan dipanggil tepat setelah memori dialokasikan untuk objek tersebut. Ini dapat digunakan untuk menginisialisasi objek ke nilai yang diinginkan atau nilai default pada saat pembuatan objek. Pembuat kode tidak wajib menulis konstruktor untuk kelas.

Jika tidak ada konstruktor yang ditentukan pengguna disediakan untuk kelas, compiler menginisialisasi variabel anggota ke nilai defaultnya.

  • tipe data numerik diatur ke 0
  • tipe data char diatur ke karakter null ('\ 0')
  • variabel referensi disetel ke nol

Dalam tutorial ini, Anda akan belajar-

  • Aturan untuk membuat Konstruktor
  • Constructor Overloading di Java
  • Rantai Konstruktor

Aturan untuk membuat Pembuat Java

  1. Ini memiliki nama yang sama dengan kelasnya
  2. Seharusnya tidak mengembalikan nilai bahkan tidak kosong

Contoh 1 : Buat Pembuat Pertama Anda di Java

Langkah 1) Ketik program konstruktor berikut di editor 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 amati hasilnya.

Keluaran:

Inside ConstructorValue1 === 10Value2 === 20

Constructor Overloading di Java

Overloading Konstruktor Java adalah teknik di mana kelas dapat memiliki sejumlah konstruktor yang berbeda dalam daftar parameter. Kompilator membedakan konstruktor ini dengan mempertimbangkan jumlah parameter dalam daftar dan tipenya.

Contoh konstruktor yang valid untuk akun kelas adalah

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

Contoh 2 : Untuk memahami Constructor Overloading di Java

Langkah 1) Ketik kode di editor.

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, Kompilasi & Jalankan Kode.

Langkah 3) Kesalahan =?. Coba dan debug kesalahan sebelum melanjutkan ke langkah berikutnya dari overloading konstruktor Java

Langkah 4) Setiap kelas memiliki Konstruktor default di Java. Java konstruktor kelebihan beban default untuk kelas Demo adalah Demo () . Jika Anda tidak menyediakan konstruktor ini, kompilator membuatnya untuk Anda dan menginisialisasi variabel ke nilai default. Anda dapat memilih untuk mengganti konstruktor default ini dan menginisialisasi variabel ke nilai yang Anda inginkan seperti yang ditunjukkan pada Contoh 1.

Tetapi jika Anda menentukan konstruktor parametrized seperti Demo (int a), dan ingin menggunakan konstruktor default Java Demo (), Anda wajib menentukannya.

Dengan kata lain, jika konstruktor overloading Anda di Java diganti, dan Anda ingin menggunakan Java konstruktor default, kebutuhannya harus ditentukan.

Langkah 5) Baris komentar # 4-8. Simpan, Kompilasi & Jalankan kode.

Rantai Konstruktor

Pertimbangkan skenario di mana kelas dasar diperluas oleh seorang anak. Setiap kali objek kelas anak dibuat, konstruktor kelas induk dipanggil terlebih dahulu. Ini disebut rangkaian konstruktor.

Contoh 3: Untuk memahami rangkaian konstruktor

Langkah 1) Salin kode berikut ke 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 Kode. Karena rangkaian konstruktor, ketika objek dari kelas anak DemoChild dibuat, konstruktor Demo () dari kelas induk dipanggil terlebih dahulu dan kemudian konstruktor DemoChild () dari anak itu dibuat. Output yang Diharapkan =

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

Langkah 3) Anda dapat mengamati konstruktor Demo kelas induk diganti. Bagaimana jika Anda ingin memanggil Demo konstruktor yang diganti (int a) daripada Demo konstruktor default () ketika objek anak Anda dibuat?

Dalam kasus seperti itu, Anda dapat menggunakan kata kunci "super" untuk memanggil konstruktor yang diganti dari kelas induk.

Sintaksis:-

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

Contoh: Jika konstruktor Anda seperti Demo (Nama String, int a) Anda akan menentukan super ("Java", 5) Jika digunakan, kata kunci super harus menjadi baris kode pertama dalam konstruktor kelas anak.

Langkah 4) Uncomment Line # 26 dan jalankan kodenya. Amati Outputnya.

Keluaran:

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

Artikel yang menarik...