Junior
Waarvoor worden de methoden equals() en toString() in Java gebruikt?
sobes.tech AI
Antwoord van AI
De methode equals() wordt gebruikt om objecten te vergelijken op logische gelijkwaardigheid, dat wil zeggen, bepaalt of twee objecten dezelfde waarde of entiteit vertegenwoordigen, ongeacht of ze hetzelfde fysieke object in het geheugen zijn.
De methode toString() wordt gebruikt om een stringrepresentatie van het object te verkrijgen. Standaard retourneert het een string die de naam van de klasse en de hash-code bevat, maar het wordt vaak overschreven om een meer informatieve beschrijving van de toestand van het object te bieden.
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; // Referentie vergelijking
if (o == null || getClass() != o.getClass()) return false; // Type en null check
ExampleObject that = (ExampleObject) o; // Type casting
return id == that.id && // Vergelijking van belangrijke velden
name.equals(that.name);
}
@Override
public int hashCode() {
// Het overschrijven van hashCode is verplicht bij het overschrijven van 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");
// Gebruik van equals()
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - logisch gelijkwaardig
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - verschillende objecten
// Gebruik van toString()
System.out.println("obj1 toString(): " + obj1.toString()); // Toont de stringrepresentatie van het object
}
}