Sobes.tech
Junior

Javaда equals() жана toString() методдору эмне үчүн колдонулат?

sobes.tech AI

AIден жооп

equals() ыкмалы учурдагы объектти башка объект менен мазмуну боюнча барабарлыгын салыштырат, шилтемелер эмес. Ал алдын ала шилтемелерди салыштыргандай (== оператору сыяктуу), бирок аны объекттердин талааларын салыштыруу үчүн кайра аныктоого болот.

toString() ыкмасы объекттин сапта көрсөтүлүшүн кайтарат. Ал алдын ала класс атын жана объекттин хеш-кодун камтыйт, бирок көбүнчө ал көбүрөөк маалымат берүү үчүн кайра аныкталат, мисалы, объекттин талаалардын маанилери.

Кайра аныктоо мисалы:

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; // шилтемелерди салыштыруу
        if (o == null || getClass() != o.getClass()) return false; // түрү жана null текшерүү
        Person person = (Person) o;
        return age == person.age && // талааларды салыштыруу
               name.equals(person.name); // `equals()` колдонуу саптар үчүн
    }

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