Kita dapat membuat lebih dari satu constructor asalkan constructor satu dengan yang lain memiliki tipe data pada parameternya berbeda. Kita buat class bernama DataMhs, lalu ketikkan sintaks di bawah ini:
public class DataMhs { //deklarasi field String nama; String kelamin; //buat constructor DataMhs tanpa parameter DataMhs(){ } //buat constructor DataMhs dgn parameter paramNama DataMhs(String paramNama){ nama = paramNama; } //buat method infoLengkap void infoLengkap(String alamat){ System.out.println("Berikut adalah data mahasiswa:"); System.out.println("Nama: " + nama); System.out.println("Alamat: " + alamat); } }
Selanjutnya kita buat class bernama DataMhsApp, ketikkan sintaks berikut ini:
public class DataMhsApp { public static void main(String[] args) { //buat objek mahasiswa1 dari constructor DataMhs() var mahasiswa1 = new DataMhs(); //buat objek mahasiswa2 dari constructor DataMhs(String paramNama) var mahasiswa2 = new DataMhs("Pauzan"); //menerapkan field nama di objek mahasiswa1 mahasiswa1.nama = "Pauzan"; System.out.println(mahasiswa1.nama); //menarpkan method infoLengkap ke objek mahasiswa2 mahasiswa2.infoLengkap("Indramayu"); } }
Jika kita run maka hasilnya adalah:
Pauzan //menerapkan field nama di objek mahasiswa1 Berikut adalah data mahasiswa: //menarpkan method infoLengkap ke objek mahasiswa2 Nama: Pauzan Alamat: Indramayu
Memanggil constructor lain
Pada constructor kita dapat memanggil constructor lain, caranya adalah sama dengan memanggil method tapi ditambahkan kata kunci this. Perhatikan sintaks berikut ini:
public class DataMhs { //deklarasi field String nama; String alamat; //buat constructor DataMhs dgn parameter paramNama dan paramAlamat DataMhs(String paramNama, String paramAlamat){ nama = paramNama; alamat = paramAlamat; } //buat constructor DataMhs dgn parameter paramNama DataMhs(String paramNama){ this(paramNama, null); //this disini memanggil constructor DataMhs(String paramNama, String paramAlamat) } //buat constructor DataMhs tanpa parameter DataMhs(){ this(null); //this disini memanggil constructor DataMhs(String paramNama) } //buat method infoLengkap void infoLengkap(String alamat){ System.out.println("Berikut adalah data mahasiswa:"); System.out.println("Nama: " + nama); System.out.println("Alamat: " + alamat); } }
Kita gunakan sintaks ini di class DataMhsApp:
public class DataMhsApp { public static void main(String[] args) { //buat objek mahasiswa1 dari constructor DataMhs() var mahasiswa1 = new DataMhs(); //buat objek mahasiswa2 dari constructor DataMhs(String paramNama) var mahasiswa2 = new DataMhs("Pauzan"); //menerapkan field nama di objek mahasiswa1 mahasiswa1.nama = "Pauzan"; System.out.println(mahasiswa1.nama); //menarpkan method infoLengkap ke objek mahasiswa2 mahasiswa2.infoLengkap("Indramayu"); } }
Jika kita run maka hasilnya akan sama dengan kasus sebelumnya:
Pauzan Berikut adalah data mahasiswa: Nama: Pauzan Alamat: Indramayu
PREVIOUS: Constructor
NEXT: Variabel shadowing