Junior
equals() metodu nə edir?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da equals() metodu iki obyekti bərabərliyi üçün müqayisə edir.
Əsasən (Object sinfində), o, obyektlərin referanslarının eyni olub-olmadığını yoxlayır (onlar eyni yaddaş nümunəsinə istinad edirmi).
Sinflər bu metodu yenidən təyin edə bilər, obyektlərin məntiqi bərabərliyini onların məzmununa əsaslanaraq müəyyən etmək üçün (məsələn, iki String obyekti, fərqli nümunələr olsa da, eyni simvol ardıcıllığını ehtiva edirsə, bərabər sayılır).
equals() metodunu yenidən təyin edərkən, hashCode() metodunu da yenidən təyin etmək lazımdır ki, aşağıdakı razılaşma qorunsun: əgər iki obyekt equals()-ə görə bərabərdirsə, onların hashCode() metodları eyni dəyərlər qaytarmalıdır.
Yenidən təyin etmənin nümunəsi:
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Referansların müqayisəsi
if (o == null || getClass() != o.getClass()) return false; // Null və tiplərin yoxlanması
MyClass myClass = (MyClass) o; // Tipə çevirmə
return value == myClass.value; // Məntiqi müqayisə
}
@Override
public int hashCode() {
return Objects.hash(value); // Hash kodunun yaradılması
}
}