Sobes.tech
Junior

¿Para qué se utilizan los métodos equals() y toString() en Java?

sobes.tech AI

Respuesta de la IA

El método equals() compara el objeto actual con otro objeto en cuanto a igualdad de contenido, no de referencias. Por defecto, compara referencias (como el operador ==), pero puede ser sobrescrito para comparar los campos de los objetos.

El método toString() devuelve una representación en forma de cadena del objeto. Por defecto, incluye el nombre de la clase y el código hash del objeto, pero también suele ser sobrescrito para proporcionar una representación más informativa, por ejemplo, los valores de los campos del objeto.

Ejemplo de sobrescritura:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @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
        Person person = (Person) o;
        return age == person.age && // Comparación de campos
               name.equals(person.name); // Uso de equals para cadenas
    }

    @Override
    public String toString() {
        return "Person{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }
}