Nama: Dimas Miftahul Huda
NIM: 10118087
Kelas: CCDP-1
- Buat kelas
Mahasiswa.java - Buat kelas
Regular.java - Buat kelas
Karyawan.java - Buat kelas
App.java
| import java.util.ArrayList; | |
| import java.util.List; | |
| public class App { | |
| public static void main(String[] args) { | |
| List<Mahasiswa> mahasiswas = new ArrayList<>(); | |
| List<Mahasiswa> mahasiswasCopy = new ArrayList<>(); | |
| Karyawan karyawan = new Karyawan(); | |
| karyawan.NIM = "10118080"; | |
| karyawan.Nama = "Anya Geraldine"; | |
| karyawan.Pekerjaan = "Selebgram"; | |
| karyawan.Jurusan = "Ilmu Komunikasi"; | |
| mahasiswas.add(karyawan); | |
| Karyawan anotherKaryawan = (Karyawan) karyawan.clone(); | |
| mahasiswas.add(anotherKaryawan); | |
| Regular regular = new Regular(); | |
| regular.Divisi = "CodeLabs"; | |
| regular.UKM = "English Club"; | |
| regular.Jurusan = "Teknik Informatika"; | |
| mahasiswas.add(regular); | |
| cloneAndCompare(mahasiswas, mahasiswasCopy); | |
| } | |
| private static void cloneAndCompare(List<Mahasiswa> mahasiswas, List<Mahasiswa> mahasiswasCopy) { | |
| for (Mahasiswa mahasiswa : mahasiswas) { | |
| mahasiswasCopy.add(mahasiswa.clone()); | |
| } | |
| for (int i = 0; i < mahasiswas.size(); i++) { | |
| if (mahasiswas.get(i) != mahasiswasCopy.get(i)) { | |
| System.out.println(i + ": Mahasiswa merupakan objek yang berbeda (yay!)"); | |
| if (mahasiswas.get(i).equals(mahasiswasCopy.get(i))) { | |
| System.out.println(i + ": Namun bersifat identik. (yay!)"); | |
| } else { | |
| System.out.println(i + ": Namun tidak bersifat identik (booo!)"); | |
| } | |
| } else { | |
| System.out.println(i + ": Mahasiswa merupakan objek yang sama (booo!)"); | |
| } | |
| } | |
| } | |
| } |
| import java.util.Objects; | |
| public class Karyawan extends Mahasiswa { | |
| public String Pekerjaan; | |
| public Karyawan() { | |
| } | |
| public Karyawan(Karyawan target) { | |
| super(target); | |
| if (target != null) { | |
| this.Pekerjaan = target.Pekerjaan; | |
| } | |
| } | |
| @Override | |
| public Mahasiswa clone() { | |
| return new Karyawan(this); | |
| } | |
| @Override | |
| public boolean equals(Object object2) { | |
| if (!(object2 instanceof Karyawan shape2) || !super.equals(object2)) return false; | |
| return Objects.equals(shape2.Pekerjaan, Pekerjaan); | |
| } | |
| } |
| import java.util.Objects; | |
| public abstract class Mahasiswa { | |
| public String NIM; | |
| public String Nama; | |
| public String Jurusan; | |
| public Mahasiswa() { | |
| } | |
| public Mahasiswa(Mahasiswa target) { | |
| if (target != null) { | |
| this.NIM = target.NIM; | |
| this.Nama = target.Nama; | |
| this.Jurusan = target.Jurusan; | |
| } | |
| } | |
| public abstract Mahasiswa clone(); | |
| @Override | |
| public boolean equals(Object object2) { | |
| if (!(object2 instanceof Mahasiswa mahasiswa2)) return false; | |
| return Objects.equals(mahasiswa2.NIM, NIM) && Objects.equals(mahasiswa2.Nama, Nama) && Objects.equals(mahasiswa2.Jurusan, Jurusan); | |
| } | |
| } |
| import java.util.Objects; | |
| public class Regular extends Mahasiswa { | |
| public String Divisi; | |
| public String UKM; | |
| public Regular() { | |
| } | |
| public Regular(Regular target) { | |
| super(target); | |
| if (target != null) { | |
| this.Divisi = target.Divisi; | |
| this.UKM = target.UKM; | |
| } | |
| } | |
| @Override | |
| public Mahasiswa clone() { | |
| return new Regular(this); | |
| } | |
| @Override | |
| public boolean equals(Object object2) { | |
| if (!(object2 instanceof Regular shape2) || !super.equals(object2)) return false; | |
| return Objects.equals(shape2.Divisi, Divisi) && Objects.equals(shape2.UKM, UKM); | |
| } | |
| } |