javaoopobject

What is the difference between identity and equality in OOP?


What is the difference between identity and equality in OOP (Object Oriented Programming)?


Solution

  • Identity

    For example:

    Integer a = new Integer(1);
    Integer b = a;
    

    a is identical to b.

    In Java, identity is tested with ==. For example, if( a == b ).

    Equality

    Integer c =  new Integer(1);
    Integer d = new Integer(1);
    

    c is equal but not identical to d.

    Of course, two identical variables are always equal.

    In Java, equality is defined by the equals method. Keep in mind, if you implement equals you must also implement hashCode.