Sobes.tech
Junior — Middle

Java'da ob'ektlarni taqqoslash kontekstida equals metodining nima ma'nosi ekanligini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Java'da equals metodi, ikki ob'ektning mazmunini tengligini taqqoslash uchun ishlatiladi. Standart holatda, agar uni qayta yozmasangiz, Object sinfidagi equals metodi referenslarni taqqoslaydi, ya'ni ikkala o'zgaruvchi xotirada bir xil ob'ektga ishora qilayotganligini tekshiradi.

Ob'ektlarni qiymat bo'yicha taqqoslash (masalan, sinf maydonlari bo'yicha) uchun equals metodini qayta yozish kerak. Metodning shartlariga rioya qilish muhim: u refleksiv, simmetrik, transitiv, konsistent bo'lishi va null bilan taqqoslanganda false qaytarishi kerak.

Person sinfida equals metodini qanday qayta yozish misoli:

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

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true; // o'ziga o'zi bilan taqqoslash
        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);
    }
}

Shu tarzda, equals ob'ektlarni referensdan ko'ra mazmuni bo'yicha taqqoslash imkonini beradi.