Contoh berikut menunjukkan bagaimana konstruktor penyalin dipakai untuk menyalin data dari konstruktor default (konstruktor tanpa argumen).
========================================================================
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package tugasPBO; import java.io.*; public class Karyawan { String nama; int usia; String jabatan; double gaji; // Ini adalah konstruktor tanpa argumen dari kelas Karyawan public Karyawan() { this.nama = "Rismon"; this.jabatan = "Dosen Biasa"; } /* Ini adalah konstruktor penyalin (copy constructor), * ia menyalin nilai-nilai dari satu objek ke objek lain * (objek yang memanggil konstruktor ini). */ Karyawan(Karyawan salin){ nama = salin.nama; jabatan = salin.jabatan; } // Ini adalah konstruktor satu argumen dari kelas Karyawan public Karyawan(String nama) { this.nama = nama; } // Ini adalah konstruktor dua argumen dari kelas Karyawan public Karyawan(String nama, double gaji) { this.nama = nama; this.gaji = gaji; } // Menugaskan usia karyawan pada variabel usia public void usiaKaryawan(int usiaKarya) { usia = usiaKarya; } /* Menugaskan jabatan kepada variabel jabatan*/ public void jabatanKaryawan(String jabatanKarya) { jabatan = jabatanKarya; } /* Menugaskan gaji kepada variabel gaji*/ public void gajiKaryawan(double gajiKarya) { gaji = gajiKarya; } /* Menampilkan identitas karyawan */ public void tampilKaryawan() { System.out.println("Nama:"+ nama); System.out.println("Usia:" + usia); System.out.println("Jabatan:" + jabatan); System.out.println("Gaji:" + gaji); } } |
========================================================================
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package tugasPBO; import java.io.*; public class UjiKaryawan { public static void main(String args[]) { //Menciptakan satu objek menggunakan konstruktor tanpa argumen Karyawan karya1 = new Karyawan(); System.out.println("Nilai-nilai data pada objek karya1: "); karya1.tampilKaryawan(); //Menguji keberadaan konstruktor penyalin (copy constructor) Karyawan karya1_salin = new Karyawan(karya1); System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya1_salin: "); karya1_salin.tampilKaryawan(); /* Menciptakan satu objek menggunakan konstruktor satu argumen*/ Karyawan karya2 = new Karyawan("Hamzan"); System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya2: "); karya2.tampilKaryawan(); /* Menciptakan satu objek menggunakan konstruktor dua argumen*/ Karyawan karya3 = new Karyawan("Robert", 1000000); System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya3: "); karya3.tampilKaryawan(); // Memanggil metode-metode dari objek karya1 System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya1 sekarang: "); karya1.usiaKaryawan(26); karya1.gajiKaryawan(1000000); karya1.tampilKaryawan(); // Memanggil metode-metode dari objek karya2 System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya2 sekarang: "); karya2.usiaKaryawan(21); karya2.jabatanKaryawan("Insinyur Informatika"); karya2.gajiKaryawan(500000); karya2.tampilKaryawan(); // Memanggil metode-metode dari objek karya3 System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya3 sekarang: "); karya3.usiaKaryawan(21); karya3.jabatanKaryawan("Insinyur Senior"); karya3.tampilKaryawan(); } } |
========================================================================
KELUARAN PROGRAM:
Nilai-nilai data pada objek karya1:
Nama:Rismon
Usia:0
Jabatan:Dosen Biasa
Gaji:0.0
Nilai-nilai data pada objek karya1_salin:
Nama:Rismon
Usia:0
Jabatan:Dosen Biasa
Gaji:0.0
Nilai-nilai data pada objek karya2:
Nama:Hamzan
Usia:0
Jabatan:null
Gaji:0.0
Nilai-nilai data pada objek karya3:
Nama:Robert
Usia:0
Jabatan:null
Gaji:1000000.0
Nilai-nilai data pada objek karya1 sekarang:
Nama:Rismon
Usia:26
Jabatan:Dosen Biasa
Gaji:1000000.0
Nilai-nilai data pada objek karya2 sekarang:
Nama:Hamzan
Usia:21
Jabatan:Insinyur Informatika
Gaji:500000.0
Nilai-nilai data pada objek karya3 sekarang:
Nama:Robert
Usia:21
Jabatan:Insinyur Senior
Gaji:1000000.0
PERHATIKAN: Data pada objek karya1 sama dengan data pada objek karya_salin.
No comments:
Post a Comment