Inhoudsopgave:
Video: 7.4: Adding and Removing Objects - p5.js Tutorial 2024
De
toString
-methode retourneert een
tekenreeks
-representatie van een object in Java. Standaard retourneert de methode
toString
de naam van de klasse van het object plus de hash-code. Hier leert u hoe u de methode
toString
gebruikt en hoe u deze overschrijft in uw eigen klassen om nuttiger tekenreeksen te maken.
ToString in Java gebruiken
Hier is een eenvoudig programma dat de
toString
-methode gebruikt:
openbare klasse TestToString
{
public static void main (String [] args)
{
Medewerker emp = nieuwe medewerker ("Martinez",
" Anthony”);
Systeem. uit. println (emp. toString ());
}
}
klasse Employee
{
private String lastName;
private String firstName;
openbare werknemer (String lastName, String firstName)
{
this. lastName = lastName;
dit. firstName = firstName;
}
}
Deze code maakt een nieuw
Employee
-object; vervolgens wordt het resultaat van de
toString
-methode afgedrukt naar de console. Wanneer u dit programma uitvoert, wordt de volgende regel op de console afgedrukt:
Werknemer @ 82ba41
Opmerking: De hash-code - in dit geval
82ba41
- zal ongetwijfeld anders zijn op uw systeem.
Het blijkt dat de expliciete aanroep van
naarString
in dit voorbeeld niet echt nodig is. U had net zo gemakkelijk de tweede regel van de
hoofd
-methode als volgt kunnen schrijven:
Systeem. uit. println (EMP);
Dat komt omdat de
println
-methode automatisch de
toString
-methode oproept van elk object dat u doorgeeft.
Overschrijven toString in Java
De standaardimplementatie van
toString
is in de meeste situaties niet erg handig. Je leert niet echt veel over een
Employee
-object door bijvoorbeeld de hash-code te zien. Zou het niet beter zijn als de methode
toString
een aantal feitelijke gegevens van het object retourneerde, zoals de naam van de werknemer?
Hiervoor moet u de methode
toString
in uw klassen overschrijven. In feite is een van de basisrichtlijnen voor objectgeoriënteerd programmeren in Java: altijd negeren
toString
. Hier is een eenvoudig programma met een
Employee
-klasse die voorrang heeft boven
toString
:
openbare klasse TestToString
{
openbare static void main (String [] args)
{
Medewerker medewerker = nieuwe medewerker ("Martinez",
"Anthony");
Systeem. uit. println (emp. toString ());
}
}
klasse Employee
{
private String lastName;
private String firstName;
openbare werknemer (String lastName, String firstName)
{
this.lastName = lastName;
dit. firstName = firstName;
}
public String toString ()
{
return "Werknemer ["
+ dit. firstName + ""
+ dit. lastName + "]";
}
}
Wanneer u dit programma uitvoert, wordt de volgende regel weergegeven op de console:
Medewerker [Anthony Martinez]
Merk op dat de uitvoer bestaat uit de klassenaam gevolgd door een aantal gegevens van het object tussen haakjes. Deze conventie is gebruikelijk in Java-programmering.
Het enige probleem met het vorige voorbeeld is dat de klassennaam hard gecodeerd is in de methode
toString
. U kunt de
getClass
-methode gebruiken om de huidige klassenaam tijdens runtime op te halen:
public String toString ()
{
retourneer deze. getClass (). getName () + "["
+ dit. firstName + ""
+ dit. lastName + "]";
}
De
getClass
-methode retourneert hier een
Klasse
-object dat de klasse van het huidige object vertegenwoordigt. Vervolgens wordt de
Class
-object
getName
-methode gebruikt om de feitelijke klassenaam te krijgen.