Kelebihan Konstruktor masuk Java

Apa itu Constructor Overloading di Java?

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

Contoh konstruktor yang valid untuk kelas Akun adalah

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

Contoh 2: Untuk memahami Kelebihan Konstruktor di Java

Langkah 1) Ketikkan 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 Java kelebihan beban konstruktor

Langkah 4) Setiap kelas memiliki default Konstruktor di Java. Konstruktor kelebihan beban default Java untuk Demo kelas is Demo(). Jika Anda tidak menyediakan konstruktor ini, kompiler akan membuatkannya 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 berparametri seperti Demo(int a), dan ingin menggunakan konstruktor default Java Demo(), Anda wajib menentukannya.

Dengan kata lain, jika konstruktor Anda kelebihan beban Java diganti, dan Anda ingin menggunakan konstruktor default Java, itu perlu ditentukan.

Langkah 5) Batalkan komentar pada baris # 4-8. Simpan, Kompilasi & Jalankan kode.

Mengapa kita membutuhkan Constructor Overloading di Java?

Overloading konstruktor dalam Java memungkinkan beberapa konstruktor dalam satu kelas, yang masing-masing memiliki daftar parameter yang berbeda. Ini meningkatkan fleksibilitas dan meningkatkan efisiensi kode.

  • Fleksibilitas dalam Pembuatan Objek: Overloading konstruktor memungkinkan Anda menginisialisasi objek dalam berbagai cara, tergantung pada jumlah atau jenis parameter.
  • Penggunaan Kembali Kode: Anda dapat menggunakan kembali logika konstruktor dengan memanggil satu konstruktor dari konstruktor lain menggunakan kata kunci this().
  • Peningkatan Keterbacaan: Konstruktor yang kelebihan beban membantu membuat kode lebih intuitif dengan menawarkan opsi konstruktor spesifik untuk kebutuhan inisialisasi yang berbeda.
  • Inisialisasi Default dan Kustom: Overloading konstruktor memungkinkan Anda membuat objek default dan objek dengan inisialisasi kustom dengan mudah.

Pertanyaan Umum (FAQ)

Pembina 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 suatu kelas.

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

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

  1. Ini memiliki nama yang sama sebagai kelas
  2. Seharusnya tidak mengembalikan nilai genap membatalkan

Contoh 1: Buat Konstruktor Pertama Anda di Java

Langkah 1) Ketik program konstruktor berikut di Java editor.

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.

Output yang Diharapkan:

Inside Constructor
Value1 === 10
Value2 === 20

Pertimbangkan skenario dimana kelas dasar diperluas oleh seorang anak. Setiap kali objek kelas anak dibuat, konstruktor kelas induk dipanggil terlebih dahulu. Ini disebut Rantai 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 adanya rantai konstruktor, ketika objek kelas anak DemoChild dibuat, konstruktor Demo() dari kelas induk dipanggil terlebih dahulu dan kemudian konstruktor DemoChild() dari anak dibuat.

Output yang Diharapkan:

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

Langkah 3) Anda mungkin mengamati konstruktor Demo kelas induk ditimpa. Bagaimana jika Anda ingin memanggil konstruktor yang diganti Demo(int a) alih-alih konstruktor default Demo() saat objek anak Anda dibuat?

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

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 kuncinya super harus menjadi baris kode pertama di konstruktor kelas anak.

Langkah 4) Batalkan komentar pada Baris #26 dan jalankan kodenya. Amati Outputnya.

Keluaran:

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