Sobes.tech
Junior — Middle

Javaда объекттерди салыштырганда equals ыкмамасы эмне мааниге ээ экенин түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Java-da, equals metodu iki ob'ektnıń mazmunın teńlikke qarap salu úshin qollanıla. Standart, eger ol üstürilemese, Object sinfiniń equals metodu referensiyalarını salıstıra, yəni, ikilіńe degeni bellekte bir ob'ektiń üstünde tura aladı.

Ob'ektnıń qıymetі boyınsha salıstıru (mısal, sinf maydandarınıń) úshin equals metodın üstüriw kerek. Metodnıń shartlarına uııw muhim: ol refleksiv, simmetrik, transitiv, konsistent bolıwı kerek hám null men teń bolmawı kerek.

Person sinfında equals metodınıń qanday üstüriwіne misal:

public class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true; // özіmen salıstıruw
        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);
    }
}

Bunday, equals ob'ektnıń mazmunı boyınsha salıstıruwına mümkindik beredi, referensiya emes.