Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2013, 08:55
aldo_rengo
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 2 meses
Puntos: 3
sobreescribir metodo equal, java

hola una consulta, tengo un codigo, donde dice esto ...

existe una clase Persona, que es una clase padre, habra otros objetos que la heredaran...
se supone que sobreescribire este metodo equals. para saber si el objeto es una instancia de la clase PERSONA, calculo que eso es lo que sucede...

en la linea que dice esto , que es lo que sucede.

Persona tmpPersona = (Persona) obj;

hago una conversion de tipo de dato...??

es como pasar un tipo de dato a otro... si mal no recuerdo de esa manera se hacia en java.

despues compara nombre, apellido, edad....que los datos de la instancia SEAN iguales a los de persona, ya que estos datos pertenecera a la clase padre, estas propiedades. se heredaran y es seguro que sean iguales...




---------------------




Código Java:
Ver original
  1. public boolean equals (Object obj) {
  2.  
  3.         if (obj instanceof Persona) {
  4.  
  5.         Persona tmpPersona = (Persona) obj;
  6.  
  7.             if (this.nombre.equals(tmpPersona.nombre) && this.apellidos.equals(tmpPersona.apellidos) &&
  8.  
  9.  this.edad == tmpPersona.edad) { return true; } else { return false; }
  10.  
  11.     } else { return false; }
  12. } //Cierre del método equals


--EDITADO

viendo el ejemplo lei que dice esto... respecto a esta linea

Persona tmpPersona = (Persona) obj;


creamos una variable de tipo Persona a la que asignamos el objeto pasado como parámetro valiéndonos de casting (enmascaramiento). Esta variable la creamos para poder invocar campos y métodos de la clase Persona, ya que esto no podemos hacerlo sobre un objeto de tipo Object. Con esta variable, realizamos las comparaciones oportunas y devolvemos un resultado.


el "obj" que se recibio como parametro...
no se le pueden llamar sus metodos...??

dice de crear una nueva variable de tipo persona.. pero si creo una nueva, como comparo despues si estos datos de la variable nueva, estaran vacios...


a lo sumo no creo una , si no que la convirtio al tipo de variable de la clase . PERSONA... (que se supone que ya es de tipo persona)

pero bueno dice, que se hace eso para poder acceder a sus propiedades interneas, asi que ustedes. ven que esta bien.....
--------------------

Última edición por aldo_rengo; 12/11/2013 a las 09:16