Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Konstruktor Java adalah metode spesial yang dipanggil saat sebuah objek dibuat. Sebuah konstruktor memulai pembuatan objek/instance. Umumnya konstruktor memberikan fields objek yang membutuhkan inisialisasi. Konstruktor juga dapat mengambil parameter, sehingga fields dapat diinisialisasi di dalam objek saat pembuatan.
Mendefinisikan Konstruktor
Berikut contoh sebuah class dengan konstruktor tunggal
public class MyClass { public MyClass() { } }
Bagian yang mendefinisikan konstruktor adalah :
public MyClass() { }
Pertama-tama, sebuah access modifier ditulis. Ini memiliki arti yang sama dengan metode dan fields. Mereka menentukan class mana yang dapat mengakses (memanggil) konstruktor.
Kedua, nama dari class digunakan sebagai nama metode konstruktor. Ini memberikan sinyal kepada kompailer Java bahwa ini adalah sebuah konstruktor. Juga catat bahwa konstruktor tidak memiliki tipe return seperti yang dimiliki oleh metode.
Ketiga, sebuah daftar parameter dideklarasikan didalam kurung (). Pada contoh diatas, tidak ada parameter yang dideklarasikan. Kita akan melihat berikutnya contoh konstruktor dengan parameter
Keempat, tubuh konstruktor didefinisikan didalam kurung kurawal { }. Dalam contoh diatas, konstruktor tidak memiliki operasi di dalam tubuh konstruktor.
Konstruktor Banyak
Sebuah class dapat memiliki banyak konstruktor, sepanjang signature (parameter yang mereka ambil) tidak sama. Anda dapat menentukan banyak konstruktor sesuai kebutuhan anda.
Memanggil Konstruktor
Anda dapat memanggil konstruktor saat anda membuat instance baru pada class yang berisi konstruktor. Berikut contohnya :
MyClass myClassVar = new MyClass();
Contoh ini membuat konstruktor tanpa argumen sebagaimana yang disampaikan diawal tutorial tadi.
Dalam hal kita ingin melewatkan parameter ke konstruktor, kita menyertakan parameter-parameter didalam tanda kurung setelah nama class seperti berikut :
MyClass myClassVar = new MyClass("John", "Doe", 1975);
Contoh tersebut melewatkan 3 parameter ke dalam konstruktor MyClass. Bagaimana mendeklarasikan parameter di dalam konstruktor akan dibahas terpisah.
Parameter-parameter Konstruktor
Adalah dimungkinkan bagi konstruktor untuk mengambil parameter-parameter. Parameter-parameter ini dapat digunakan untuk menginisialisasi kondisi internal dari objek yang baru dibuat. Berikut contohnya :
public class Employee { private String firstName = null; private String lastName = null; private int birthYear = 0; public Employee(String first, String last, int year ) { firstName = first; lastName = last; birthYear = year; } }
Pada contoh tersebut definisi konstruktor adalah :
public Employee(String first, String last, int year ) { firstName = first; lastName = last; birthYear = year;
Sebagaimana yang kita lihat, parameter-parameter ini dideklarasikan : first
,last
dan year
. Di dalam tubuh konstruktor nilai dari tiga parameter ini diberikan pada fields objek Employee
Line break setelah masing-masing parameter bersifat opsional. Kompailer Java akan mengabaikan line break disana. Kita juga dapat menulis deklarasi parameter dalam bentuk satu baris jika memang diinginkan seperti ini :
public Employee(String first, String last, int year ) { firstName = first; lastName = last; birthYear = year; }
Untuk konstruktor ini yang mengambil parameter, kita akan membuat objek Employee
seperti ini :
Employee employee = new Employee("Jack", "Daniels", 2000);
Parameter-parameter yang dilewatkan ke konstruktor di dalam kurung setelah nama class di sebelah kanan tanda sama dengan. Objek kemudian dibuat, dan konstruktor dieksekusi. Setelah eksekusi konstruktor diatas, fields dimulai oleh konstruktor akan memiliki nilai parameter yang diberikan ke konstruktor.
Modifier Akses Konstruktor
Modifier Akses dari suatu Konstruktor menentukan class apa pada aplikasi kita yang diiizinkan memanggil konstruktor tersebut. Modifier akses dijelaskan lebih detail pada materi tentang Modifier Akses Java
Sebagai contoh, jika konstruktor dideklarasikan protected
maka hanya class dalam paket yang sama, atau subclass dari class tersebut yang dapat memanggil konstruktor tersebut.
Sebuah class dapat memiliki banyak konstruktor, dan masing-masing konstruktor dapat memiliki modifier aksesnya sendiri-sendiri. Jadi beberapa konstruktor bisa saja tersedia untuk semua class dalam aplikasi kita, sementara beberapa konstruktor lain hanya tersedia bagi class-class yang ada dalam paket yang sama, atau subclass, atau bahkan hanya untuk class itu sendiri (konstruktor privat)
Default, Konstruktor Tanpa Argumen
Kita tidak harus mendefinisikan sebuah konstruktor untuk sebuah class, tetapi jika kita tidak menentukan konstruktor apapun, kompailer Java akan menyisipkan konstruktor default tanpa-argument. Jadi, sekali class dikompail dia akan selalu memiliki setidaknya konstruktor tanpa argumen
Jika kita menentukan sebuah konstruktor untuk class kita, maka kompailer Java kemudian tidak akan menyisipkan konstruktor default tanpa argumen ke dalam class kita
(reza@rumahilmu.or.id)
Leave a Reply