Junior
¿Para qué se utilizan los métodos equals() y toString() en Java?
sobes.tech AI
Respuesta de la IA
El método equals() se utiliza para comparar objetos en términos de equivalencia lógica, es decir, determina si dos objetos representan el mismo valor o entidad, independientemente de si son el mismo objeto físico en memoria.
El método toString() se usa para obtener una representación en cadena del objeto. Por defecto, devuelve una cadena que contiene el nombre de la clase y su código hash, pero a menudo se sobrescribe para proporcionar una descripción más informativa del estado del objeto.
public class ExampleObject {
private int id;
private String name;
public ExampleObject(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Comparación de referencias
if (o == null || getClass() != o.getClass()) return false; // Verificación de tipo y null
ExampleObject that = (ExampleObject) o; // Casting de tipo
return id == that.id && // Comparación por campos significativos
name.equals(that.name);
}
@Override
public int hashCode() {
// Sobrescribir hashCode es obligatorio al sobrescribir equals
return Objects.hash(id, name);
}
@Override
public String toString() {
return "ExampleObject{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public static void main(String[] args) {
ExampleObject obj1 = new ExampleObject(1, "Test");
ExampleObject obj2 = new ExampleObject(1, "Test");
ExampleObject obj3 = new ExampleObject(2, "Another");
// Uso de equals()
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - lógicamente equivalentes
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - objetos diferentes
// Uso de toString()
System.out.println("obj1 toString(): " + obj1.toString()); // Mostrará la representación en cadena del objeto
}
}