что будет выводить код используя оператор равенства - PullRequest
0 голосов
/ 05 апреля 2020

что будет выводиться из кода с использованием пакета оператора равенства;

Создан класс a class A {int i; int j; A () {i = 1; J = 2; }} test 7 - это класс

public class test7 {

    public static void main(String[] args) {

obj1 andobj2 - объекты

        A obj1 =new A();*object created*
        A obj2 = new A();
        System.out.println(obj1.equals(obj2));

    }

}

1 Ответ

1 голос
/ 05 апреля 2020

Цель метода equals() состоит в том, чтобы вы могли переопределить поведение по умолчанию:

https://www.geeksforgeeks.org/equals-hashcode-methods-java/

Мелкое сравнение :

Реализация по умолчанию метода equals определена в Java .lang.Object класс, который просто проверяет, ссылаются ли две ссылки на объект (скажем, x и y) на один и тот же объект. т.е. проверяет, если х == у. Поскольку у класса Object нет элементов данных, определяющих его состояние, он также известен как поверхностное сравнение.

Глубокое сравнение:

Предположим, что класс обеспечивает собственную реализацию равенства () метод для сравнения Объектов этого класса с состоянием Объектов. Это означает, что элементы данных (то есть поля) объектов должны сравниваться друг с другом. Такое сравнение, основанное на элементах данных, называется глубоким сравнением.

В вашем случае:

  • Поскольку obj1 и obj2 - это два разных объекта ...
  • ... А так как вы не переопределили метод "equals ()" ...
  • Тогда вы получите значение по умолчанию: equals () вернет "false"

Попробуйте и посмотрите - скомпилируйте свой код и запустите его:)

PS:

Пожалуйста, прочитайте это руководство:

MKYong.com: Java - Как переопределить equals и hashCode

...