Sobes.tech
Junior — Middle

Мақсади усули equals() дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Метод equals() дар Java истифода мешавад барои муқоиса кардани объектҳо ба рӯйхати баробарӣ бо мазмун, на бо истинод. Ба таври пешфарз, метод equals() дар синфи Object муқоиса мекунад бо истинодҳо (яъне, санҷиш мекунад, ки оё ду тағйирёбанда ба як объект ишора мекунанд).

Бо навиштани дубораи equals(), шумо метавонед муайян кунед, ки ду объект баробар ҳисобида мешаванд, агар баъзе майдонҳои муайян мувофиқ бошанд. Ин муҳим аст, масалан, дар кор бо ҷамъиятҳо, ки дар он бояд объектҳоро ба арзиш муқоиса кард.

Масалан, навиштани дубораи equals() дар синфи Person:

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

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Person person = (Person) obj;
        return age == person.age && name.equals(person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

Инчунин, equals() имкон медиҳад, ки объектҳоро мувофиқи мантиқӣ, на манзилӣ, муқоиса кунед.