Sobes.tech
Junior — Middle

Kun je uitleggen wat de methode equals betekent in de context van het vergelijken van objecten in Java?

sobes.tech AI

Antwoord van AI

In Java wordt de methode equals gebruikt om de inhoud van twee objecten op gelijkheid te vergelijken. Standaard, als deze niet wordt overschreven, vergelijkt de equals-methode van de klasse Object referenties, dat wil zeggen, controleert of beide variabelen naar hetzelfde object in het geheugen wijzen.

Om objecten op waarde te vergelijken (bijvoorbeeld, op de velden van de klasse), moet de equals-methode worden overschreven. Het is belangrijk om zich aan het contract van de methode te houden: het moet reflexief, symmetrisch, transitief, consistent en niet gelijk aan null zijn.

Voorbeeld van het overschrijven van equals in de klasse Person:

public class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true; // vergelijking met zichzelf
        if (obj == null || getClass() != obj.getClass()) return false;
        Person other = (Person) obj;
        return age == other.age && Objects.equals(name, other.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

Op deze manier maakt equals het mogelijk om objecten op inhoud te vergelijken, niet op referentie.