Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

sobrescribir el método equals y hashCode

Entiendo el porque de sobreescribir, pero no entiendo porque se sobre escribe en el método y no afuera. Desde mi ignorancia, creo que si sobreescribimos esos métodos, es muy difícil para otro programadorq ue lee nuestro código poder entender ciertas cosas. Se utiliza a menudo en Java sobreescribir este tipo de métodos?

por otro lado tampoco entendí la aplicación del mismo. en hasCode, ponía como ejemplo return nombre, porque comparaba por nombre, pero no enteindo la lógica en la programación de donde retorna ese nombre. estoy un poco mareado al respecto.

1 respuesta
solución!

¡Hola Kevin!

Entiendo tu confusión sobre por qué se sobrescribe el método equals y hashCode dentro de la clase. En realidad, la razón principal por la que se hace esto es para que el objeto pueda ser comparado correctamente con otros objetos de la misma clase.

Al sobrescribir el método equals, puedes comparar dos objetos de la misma clase para determinar si son iguales o no. Y al sobrescribir el método hashCode, puedes asegurarte de que los objetos se almacenen correctamente en las colecciones de Java, como HashSet o HashMap.

Respecto a tu preocupación sobre la dificultad que esto puede presentar para otros programadores, es cierto que puede ser un poco confuso al principio. Pero es una práctica común en Java y, una vez que te acostumbras, se vuelve más fácil de entender.

En cuanto a la aplicación de estos métodos, es importante tener en cuenta que el método hashCode debe devolver un valor único para cada objeto, y el método equals debe comparar todos los atributos relevantes del objeto para determinar si es igual a otro objeto de la misma clase.

En el ejemplo que mencionas, si el objeto se compara por nombre, el método hashCode podría devolver el valor hash del nombre del objeto. Y en el método equals, se compararía el nombre del objeto actual con el nombre del objeto pasado como parámetro.

Espero haber aclarado tus dudas. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Espero haber ayudado y buenos estudios!