style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Metodo equals y el operador ==

Una pregunta,

Si yo quiero comparar referencias de dos objetos ocupo ==,
algo mas o menos asi como :

 
        Integer x1= new Integer(45);
        Integer x2= x1;        
        System.out.println(x1 ==x2);

Si yo quiero comparar contenido de dos objetos ocupo equals

 
        Integer x1= new Integer(45);
        Integer x2= new Integer(45);
        System.out.println(x1.equals(x2));

Pero que pasa si yo hago lo siguiente con el metodo equals el cual me regresa false, a mi parecer "equals" aplican para objetos no para constructores.

 public class A {        
 
    private int x=10;
    private int y =11;

    public  A(int x, int y ){
       this.x=x;
       this.y=y;
      }

     public static void main (String [] args){
         A a = new A(10,10);
         A b = new A(10,10);
         
         System.out.println(a.equals(b));
      }
   }

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de bferro

El método equals de Object compara identidades

En tu ejemplo, los objetos a y b son dos objetos diferentes, donde cada uno tiene una identidad que es inherente a cada objeto. El método equals en la clase Object define la igualdad por identidad: dos objetos son iguales si tienen la misma identidad, o sea que se trata del mismo objeto. Ese método está disponible para los objetos de tu clase A que hereda de la clase Object. Si deseas que la igualdad se realice por otra vía, entonces debes anular (override) el método equals en esa clase A.

Imagen de benek

Es correcto, checa aquí la

Es correcto, checa aquí la implementación de equals() en la línea 149 de la clase Object.java: http://www.docjar.com/html/api/java/lang/Object.java.html

Imagen de CesarAlducin

Ok

Entendido ya con esto me queda mas claro que equals define igualdad por identidad ademas contenido de mis objetos.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">