Введение в программирование

Эквивалентность объектов


Для определения равенства различных объектов применяется метод equals.

Метод equals реализован в классе Object и соответственно наследуем любым классом Java. Большинство классов переопределяет этот метод таким образом, что позволяет сравнивать на эквивалентность объекты конкретного класса.

Например:

class A { String objectName; A (String name) { objectName = name; } // Конструктор } public class MyA { public static void main (String args[ ]) { A A = new A("Class1"); // Создание экземпляра класса

A A_eq = A; // Ссылка на существующий объект

A A_clon = (A)A.clone; // Создание объекта методом clone

A A_2 = new A("Class2"); // Сравнение объектов: if (A.equals(A_eq)) { } if (A.equals(A_ clon)) { } if (A.equals(A_ 2)) { } } }

Выполнив приведенный пример, можно увидеть, что эквивалентными будут только экземпляр класса и объект, созданный как ссылка на данный экземпляр класса. А экземпляр класса и его клон, так же, как и различные экземпляры одного класса, не совпадают.

Принадлежность объекта к конкретному классу проверяется с помощью оператора instanseof.



Содержание раздела