Unidad: Programación Orientada a ObjetosLección 6 de 6Gratis
🧱
La clase Object
Toda clase en Java hereda, aunque no lo escribas, de Object. Por eso todo objeto tiene automáticamente los métodos equals(), hashCode() y toString().
public class Punto {
int x, y;
@Override
public String toString() {
return "Punto(" + x + "," + y + ")";
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Punto)) return false;
Punto p = (Punto) o;
return this.x == p.x && this.y == p.y;
}
}
Regla de oro: si sobrescribes equals(), también tienes que sobrescribir hashCode() de forma consistente, o las colecciones basadas en hash (como HashMap) se van a comportar mal.
Pon a prueba lo que aprendiste
Concepto
¿De qué clase heredan, implícitamente, todas las clases en Java?
AMain
BClass
CObject
DRoot
Ver respuesta
C) Object Object es la superclase raíz de todas las clases en Java.
toString()
¿Para qué sirve sobrescribir toString()?
APara crear una copia del objeto
BPara eliminar el objeto de memoria
CPara comparar dos objetos
DPara controlar qué texto se muestra al imprimir un objeto (por ejemplo con println)
Ver respuesta
D) Para controlar qué texto se muestra al imprimir un objeto (por ejemplo con println) Println() y la concatenación con + llaman automáticamente a toString().
equals()
Sin sobrescribir equals(), ¿qué compara por defecto la versión heredada de Object?
AEl contenido de todos los atributos automáticamente
BSiempre devuelve true
CSolo el primer atributo
DSi son exactamente el mismo objeto en memoria (igual que ==)
Ver respuesta
D) Si son exactamente el mismo objeto en memoria (igual que ==) El equals() por defecto de Object compara referencias, igual que ==.
🎯 Practica esta lección completa
Ejercicios de completar código, ordenar bloques y respuesta libre. Ganas XP y mantienes tu racha.