Sobes.tech
Junior

Kam paredzēti metodes equals() un toString() Java valodā?

sobes.tech AI

Atbilde no AI

equals() metode salīdzina pašreizējo objektu ar citu objektu pēc satura vienlīdzības, nevis atsauces. Pēc noklusējuma tas salīdzina atsauces (kā operator ==), bet to var pārrakstīt, lai salīdzinātu objektu laukus.

toString() metode atgriež objekta teksta reprezentāciju. Pēc noklusējuma tā ietver klases nosaukumu un objekta hash kodu, bet bieži tiek pārrakstīta, lai sniegtu informatīvāku attēlojumu, piemēram, objekta lauku vērtības.

Pārrakstīšanas piemērs:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Atsauču salīdzināšana
        if (o == null || getClass() != o.getClass()) return false; // Tips un null pārbaude
        Person person = (Person) o;
        return age == person.age && // Lauku salīdzināšana
               name.equals(person.name); // `equals()` izmantošana virkēm
    }

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