Sobes.tech
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.