martes, 13 de mayo de 2008

Redefinir el metodo Equals


Muy buenas hoy vamos a ver como se redefine el metodo equals de la clase objects para poder utilizarlos en nuestra clase, para ello nos crearemos nuestra clase y definimos un metodo equals de este modo:


package eticom;
import eticom.anotaciones.Desarrollador;



@Desarrollador(nombre="Alberto")
public class Usuario {

String nombre;
String clave;


public Usuario() {
nombre="Jesus";
clave="1111";

}

public Usuario(String nombre, String clave) {
this.nombre = nombre;
this.clave = clave;

}
/*
Al llamarlo igual que el metodo de la clase Object redefiniremos el metodo pasandole un objeto y haciendo un casting al object para convertirlo en obejeto de nuestra clase.


*/
public boolean equals(Object a) {
boolean respuesta=false;
Usuario u = (Usuario)a;
if(u.nombre.equals(this.nombre)&& u.clave.equals(this.clave)){
respuesta=true;

};
return respuesta;

}



}

Hagamos la prueba:


package eticom;

import org.testng.annotations.Test;

import eticom.anotaciones.Desarrollador;
import eticom.anotaciones.FechaProyecto;

public class UsuarioTest {
String nombre;
String clave;

public UsuarioTest() {

}

public UsuarioTest(String nombre, String clave) {
this.nombre = nombre;
this.clave = clave;

}


@Test
public void pruebaEquals() {
Usuario uno = new Usuario();
Usuario dos = new Usuario();
assert (uno.equals(dos)) : "No son iguales";
Usuario tres = new Usuario("pepe", "3333");
Usuario cuatro = new Usuario("juan", "7777");
assert (!tres.equals(cuatro)) : "Son iguales";
}
}

No hay comentarios: