Junior — Middle
Java-da obyektlərin müqayisəsi kontekstində equals metodunun nə mənası olduğunu izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da, equals metodu iki obyektin məzmununu bərabərliyi üçün müqayisə etmək üçün istifadə olunur. Əsasən, əgər onu yenidən təyin etməsəniz, Object sinfinin equals metodu referansları müqayisə edir, yəni, hər iki dəyişən yaddaşda eyni obyektə işarə edir və ya yox.
Obyektləri dəyər üzrə müqayisə etmək (məsələn, sinifin sahələri üzrə) üçün equals metodunu yenidən təyin etmək lazımdır. Metodun şərtlərinə riayət etmək vacibdir: o, refleksiv, simmetrik, transitiv, ardıcıl və null ilə müqayisədə false qaytarmalıdır.
Person sinifində equals metodunun necə yenidən təyin ediləcəyinə nümunə:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // özünə qarşı müqayisə
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Bu şəkildə, equals obyektləri referansdan çox, onların məzmununa görə müqayisə etməyə imkan verir.