@hax
junior developer

В чем смысл метода Object.equals(Object ob) в Java?

В чем разница оператора сравнения "==" и метода Object.equals(Object ob)? В документации пишется, что метод equals сравнивает содержимое объектов и выводит логическое true, если содержимое объектов совпадает, и false в противном случае. Однако на практике это не так:
public class Application {
    public static void main(String args[]) {
        A a1 = new A(3);
        A a2 = new A(2);
        System.out.println(a1.equals(a2));

    }
}

Результатом будет false.
А если обе ссылки приравнять:
public class Application {
    public static void main(String args[]) {
        A a1 = new A(3);
        A a2 = new A(2);
        a1 = a2;
        System.out.println(a1.equals(a2));

    }
}

То результатом будет true. Скажите пожалуйста, в чем отличие метода equals от "=="? Если нет отличия, то смысл от этого метода?
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
Rou1997
@Rou1997
String s1 = "abc";
String s2 = "abc";
s1.equals(s2) // true
s1 == s2 // false


В документации пишется, что метод equals сравнивает содержимое объектов

Но вы сами должны задать для него логику в своем классе, иначе как он поймет какое "содержимое" сравнивать, у вас же обычно в классе не одно поле и не два?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы