Pada kasus ini, konstruktor default (tanpa-argumen) dipanggil dari konstruktor satu-argumen. Nilai-nilai variabel kelas pada konstruktor default otomatis diberikan kepada konstruktor satu-argumen. Hal ini efisien dalam menginisialisasi nilai-nilai data pada objek.
=======================================================================
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | 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"; usia(0); } /* 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; } //Metode helper ini bisa dipanggil dari konstruktor. void usia(int x) { usia = x; } /* Ini adalah konstruktor satu argumen dari kelas Karyawan public Karyawan(String nama) { this.nama = nama; } */ //Ini adalah konstruktor satu argumen dari kelas Karyawan public Karyawan(double gaji) { //Memanggil konstruktor default (tanpa-argumen) //yang harus ditempatkan pada baris pertama this(); this.gaji = gaji; } /* Ini adalah konstruktor dua argumen dari kelas Karyawan public Karyawan(String nama, double gaji) { this.nama = nama; this.gaji = gaji; }*/ /* Ini adalah konstruktor dua argumen parsial, dimana * nilai default untuk gaji dan usia ditetapkan langsung pada * konstruktor ini. */ public Karyawan(String nama, double gaji) { this.nama = nama; this.gaji = gaji; this.usia = 25; this.jabatan = "Karyawan Biasa"; } // Menugaskan usia karyawan pada variabel usia public void usiaKaryawan(int usiaKarya) { if (usiaKarya<0) { usia(0); } else { 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 52 53 54 55 56 57 58 59 | 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 metode helper pada konstruktor tanpa argumen //dengan memberikan nilai minus pada usia karya1.usiaKaryawan(-10); System.out.println("\n\n"); System.out.println("Nilai-nilai data pada objek karya1 sekarang: "); 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 * yang memanggil konstruktor default (tanpa argumen)*/ Karyawan karya2 = new Karyawan(750000.0); 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 sekarang:
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:Rismon
Usia:0
Jabatan:Dosen Biasa
Gaji:750000.0
Nilai-nilai data pada objek karya3:
Nama:Robert
Usia:25
Jabatan:Karyawan Biasa
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:Rismon
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
========================================================================
PERHATIAN: Nilai data objek nama, usia, dan jabatan dari objek karya1 diberikan kepada objek karya2. Hal ini dilakukan dengan memanggil konstruktor default dari konstruktor satu-argumen.
No comments:
Post a Comment