Junior — Middle
Hoe moet de vergelijking van objecten in programmeren worden uitgevoerd?
sobes.tech AI
Antwoord van AI
In Java hangt de vergelijking van objecten af van wat precies vergeleken moet worden:
-
Vergelijking van referenties (objecten) op gelijkheid:
- Wordt de operator
==gebruikt. - Controleert of twee variabelen naar hetzelfde object in het geheugen wijzen.
- Wordt de operator
-
Vergelijking van de inhoud van objecten:
- Wordt de methode
.equals()gebruikt. - Standaard (in de klasse Object) vergelijkt het referenties, maar veel klassen (bijvoorbeeld String, Integer) overschrijven deze methode om de inhoud te vergelijken.
- Wordt de methode
Voorbeeld:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, verschillende objecten
System.out.println(a.equals(b)); // true, inhoud gelijk
Aanbevelingen:
- Gebruik altijd
.equals()voor inhoudsvergelijking, als de klasse dit correct implementeert. - Gebruik
==om te controleren of het hetzelfde object betreft. - Bij het maken van eigen klassen wordt aanbevolen om de methode
equals()(enhashCode()) te overschrijven voor correcte inhoudsvergelijking.