Sobes.tech
Junior

Ի՞նչ նպատակով են օգտագործվում Java-ում equals() և toString() մեթոդները։

sobes.tech AI

Պատասխան AI-ից

equals() մեթոդը օգտագործվում է օբյեկտների համեմատության համար՝ ստուգելու, արդյոք երկու օբյեկտները ներկայացնում են նույն արժեքը կամ էությունը, անկախ նրանից՝ արդյոք նրանք ֆիզիկապես նույն օբյեկտն են հիշողության մեջ:

toString() մեթոդը օգտագործվում է օբյեկտի տողային ներկայացում ստանալու համար: Դեպքերում, երբ այն չի վերագրանցվում, այն վերադարձնում է դասի անունը և նրա hash-կոդը, սակայն հաճախ այն վերագրանցվում է ավելի տեղեկատվական նկարագրության համար:

public class ExampleObject {
    private int id;
    private String name;

    public ExampleObject(int id, String name) {
        this.id = id;
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // հղումների համեմատություն
        if (o == null || getClass() != o.getClass()) return false; // Տիպի և null-ի ստուգում
        ExampleObject that = (ExampleObject) o; // Տիպի վերագրանցում
        return id == that.id && // Значимые поля համեմատություն
               name.equals(that.name);
    }

    @Override
    public int hashCode() {
        // hashCode-ի վերագրանցումը պարտադիր է equals-ի վերագրանցումից հետո
        return Objects.hash(id, name);
    }

    @Override
    public String toString() {
        return "ExampleObject{" +
               "id=" + id +
               ", name='" + name + '\'' +
               '}';
    }

    public static void main(String[] args) {
        ExampleObject obj1 = new ExampleObject(1, "Test");
        ExampleObject obj2 = new ExampleObject(1, "Test");
        ExampleObject obj3 = new ExampleObject(2, "Another");

        // `equals()`-ի օգտագործում
        System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - տրամաբանական համարժեք
        System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - տարբեր օբյեկտներ

        // `toString()`-ի օգտագործում
        System.out.println("obj1 toString(): " + obj1.toString()); // Տողային ներկայացում օբյեկտի
    }
}