Program Overriding Method Equal Java dan Fungsinya
Overriding Metode equals
public class Person
{
private String name;
private int age;
// Constructor, getters,
// setters, etc.
@Override
public boolean
equals(Object obj) {
// Memeriksa apakah objek
// sama dengan dirinya sendiri
if (this == obj) return true;
// Memeriksa tipe objek
if (obj == null || getClass()
!= obj.getClass())
return false;
// Konversi objek
// ke tipe Person
Person person = (Person) obj;
// Membandingkan
// nilai-nilai atribut
return age == person.age &&
Objects.equals(name,
person.name);
}
}
Semua class pada Java diturunkan (inherit) dari object class, baik secara langsung atapun juga tidak langsung. Class object memiliki beberapa method dasar seperti clone(), toString(), equals(), dan lain sebagainya. Sehingga, dapat dilakukan overriding method equal atau yang bernilai sama dalam sebuah class untuk diperiksa apakah kedua object tersebut memiliki nilai atau data yang sama atau tidak.
class Complex
{
private double re, im;
public Complex(double re, double im) {
this.re = re;
this.im = im;}
}
// Driver class untuk test
// Complex class.
public class Main
{
public static void main(String[] args) {
Complex c1 = new Complex(10, 15);
Complex c2 = new Complex(10, 15);
if (c1 == c2)
{System.out.println("Sama ");}
else {System.out.println("Tidak"
+" Sama ");}
}
}
class Complex
{
private double re, im;
public Complex(double re, double im)
{this.re = re;
this.im = im;}
// Overriding equals() untuk
// membandingkan dua object
// Complex.
@Override
public boolean equals(Object o) {
// Jika object yang
// dibandingkan dengan dirinya
// sendiri maka akan
// memberikan nilai return
// true.
if (o == this)
{return true;}
// Perika jika o adalah
// instance dari Complex atau
// tidak "null
// instanceof[type]" juga
// return false.
if (!(o instanceof Complex))
{return false;}
// Typecast o untuk Complex
// sehingga bisa dilakukan
// perbandingan anggota
// datanya.
Complex c = (Complex) o;
// Membandingkan anggota data
// dan return yang sesuai.
return Double.compare(re, c.re) == 0 && Double.compare(im, c.im) == 0;}
}
// Driver class untuk test
// Complex class.
public class Main
{
public static void main(String[] args)
{
Complex c1 = new Complex(10, 15);
Complex c2 = new Complex(10, 15);
if (c1.equals(c2))
{System.out.println("Sama ");}
else
{System.out.println("Tidak"
+" Sama ");}
}
}
- Membandingkan Nilai-nilai Atribut: Overriding metode equals memungkinkan untuk membandingkan nilai-nilai atribut objek untuk menentukan kesamaan diantara nilai antribut yang sedang dibandingkan.
- Definisi Kesamaan yang Khusus: Dengan overriding metode equals, pengembang dapat menentukan definisi kesamaan yang spesifik untuk objek yang sesuai dengan kebutuhan aplikasi.
- Meningkatkan Keterbacaan dan Pemahaman Kode: Dengan mengimplementasikan metode equals yang sesuai, pengembang dapat meningkatkan keterbacaan dan pemahaman kode, karena logika perbandingan nilai-nilai atribut menjadi lebih jelas.
- Integrasi dengan Struktur Data: Metode equals yang di-overwrite memungkinkan objek untuk bekerja dengan benar dengan struktur data seperti HashMap dan HashSet, di mana kesamaan objek digunakan sebagai kunci.
- Risiko Kesalahan Implementasi: Implementasi yang salah dari metode equals dapat menyebabkan perilaku yang tidak diinginkan dalam aplikasi, seperti kesalahan dalam pembandingan objek atau kinerja yang buruk dalam struktur data yang bergantung pada kesamaan objek.
- Pentingnya Konsistensi: Metode equals harus mematuhi kontrak kesamaan, yang berarti harus konsisten dalam perilakunya. Kesalahan dalam mengimplementasikan metode equals dapat menyebabkan ketidak-konsistensi dalam aplikasi, yang dapat menyebabkan bug yang sulit untuk dideteksi dan diperbaiki.
- Overriding Equals vs. Overloading Equals: Salah satu kesalahan umum adalah membingungkan antara overriding metode equals dengan overloading metode equals. Overloading metode equals (yaitu, mendefinisikan lebih dari satu metode equals dalam kelas yang sama dengan tanda-tanda parameter yang berbeda) tidak akan mengganti implementasi default dari metode equals.
- Pengaruh Terhadap Kinerja: Implementasi yang buruk dari metode equals, terutama jika melibatkan pembandingan objek yang kompleks atau biaya komputasi yang tinggi, dapat berdampak negatif pada kinerja aplikasi. Penting untuk mempertimbangkan kinerja saat mengimplementasikan metode equals.
- Ketergantungan pada Objek Lain: Overriding metode equals sering kali melibatkan ketergantungan pada metode equals dari objek lain, yang mungkin tidak selalu dapat diandalkan atau dijamin untuk memberikan perilaku yang diharapkan.
- Pemeliharaan dan Pembaruan: Jika struktur atau atribut objek berubah seiring waktu, implementasi metode equals juga harus diperbarui secara konsisten. Hal ini dapat menambah beban pemeliharaan dan membutuhkan perhatian ekstra dari pengembang.
- Cara Inisialisasi Block Instance Java dan Fungsinya
- Static dan Dynamic Binding Java dan Fungsinya
- Java Bukan Pemrograman Berorientasi Objek Murni dan Alasannya
- Multiple Inheritance Java dan Fungsinya
- Membuat Object Java dari Class Turunan dan Fungsinya
- Inheritance dan Constructor Java dan Fungsinya
- Interface dan Inheritance Java dan Fungsinya
6 komentar untuk "Program Overriding Method Equal Java dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa fungsi equal() pada Java?
BalasHapusUntuk membandingkan dua object pada Java, class object menyediakan method dengan nama yang sama dengan equal(). Method tersebut menerima object dan membandingkannya dengan object yang ada saat ini. Jika nilai kedua referensi object tersebut adalah sama, maka akan mengembalikan nilai return TRUE dan jika tidak maka akan mengembalikan nilai reuturn FALSE.
HapusApa yang dimaksud dengan operator "==" atau operator persamaan pada Java?
BalasHapusTanda "==" atau operator persamaan pada Java adalah operator biner yang disediakan oleh bahasa pemrograman Java yang digunakan untuk melakukan perbandingan data primitif atau object. Jadi, operator "==" akan mengembalikan nilai TRUE jika nilai dari dua referensi object yang dibandingkan adalah mewakili nilai object yang sama persis atau senilai, jika sebaliknya maka akan mengembalikan nilai FALSE.
HapusApakah dapat dilakukan overriding equal method pada Java?
BalasHapusDapat dilakukan overiding method yang sama dengan class untuk memeriksa apakah dua object memiliki data yang sama atau tidak dalam bahasa pemrograman Java.
HapusCatatan: ketika dilakukan penggantian equal(), maka disarankan untuk mengganti method hashCode().