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); | |
} | |
} |