Apa itu Konstruktor Default?

Konstruktor default adalah metode khusus yang membuat dan menginisialisasi objek dalam pemrograman berorientasi objek. Ada beberapa jenis konstruktor, tetapi konstruktor default harus memenuhi salah satu dari dua kriteria khusus, selain membuat dan menginisialisasi objek. Itu harus baik tidak memiliki parameter, dalam hal ini juga bisa disebut konstruktor nullary, atau harus menetapkan nilai default untuk semua parameter yang memiliki kemampuan untuk mengatur. Beberapa bahasa komputer secara implisit menentukan konstruktor nullary default jika programmer tidak menentukan konstruktor sama sekali. Setelah semua jenis konstruktor ditulis, konstruktor nullary default tidak lagi ditentukan, dan harus ditulis secara eksplisit jika diperlukan.

Untuk bahasa komputer yang memungkinkan pewarisan berorientasi objek, konstruktor default di subclass harus secara tepat terhubung ke konstruktor di superclass. Konstruktor subclass selalu harus memanggil konstruktor superclass sebelum melakukan sesuatu yang spesifik untuk subclass. Dalam beberapa bahasa, seperti Java®, konstruktor subclass secara implisit memanggil konstruktor nullary default superclass. Jika konstruktor nullary default superclass tidak ada, objek subclass tidak dapat dibangun dengan benar. Subclass masih dapat memiliki salah satu jenis konstruktor default dalam kasus ini, tetapi konstruktor superclass yang tersedia harus dipanggil dengan benar, mungkin dengan meneruskan nilai default yang unik ke subclass.

Generasi implisit dari konstruktor nullary default memiliki keuntungan mengurangi jumlah metode yang harus ditentukan dan didokumentasi oleh programmer, tetapi juga memiliki kelemahan yaitu kemungkinan membuat pemeliharaan dan pemahaman kode menjadi lebih sulit. Beberapa programmer menganggap penghilangan konstruktor default sebagai praktik yang buruk, sementara yang lain tidak. Tidak ada yang mencegah programmer individu untuk mengikuti salah satu dari metode pemrograman ini, jadi memasukkan konstruktor nullary default dalam kode sebagian besar merupakan pilihan gaya di pihak programmer. Jika konstruktor disertakan, sebagian besar aliran pemikiran mendikte bahwa itu harus dikomentari dan didokumentasikan sama seperti konstruktor atau metode lainnya.

Setiap konstruktor default dapat memiliki pengubah akses yang melekat padanya, membuat konstruktor publik, dilindungi, atau pribadi. Ini memberikan kemampuan khusus konstruktor berdasarkan kelas di mana ia ditentukan. Konstruktor default publik dapat digunakan untuk membuat objek baru dari kelas lain, sedangkan konstruktor yang dilindungi hanya dapat dipanggil dari kelasnya sendiri dan subkelas apa pun. Konstruktor default yang dilindungi sering terlihat dalam hierarki pewarisan. Konstruktor pribadi biasanya digunakan hanya di kelas mandiri, di mana beberapa jenis metode pabrik tersedia untuk menyebutnya, daripada programmer.