Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Methode ToString() | Klassen
Java Uitgebreid
course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Methode ToString()

Hoe een object eenvoudiger afdrukken?

Om alle gegevens van een object weer te geven met het commando System.out.println(object); in Java, is er een methode genaamd toString();.

toString()

De toString-methode in Java is een ingebouwde methode die behoort tot de Object-klasse. Deze wordt gebruikt om een stringrepresentatie van een object terug te geven. Standaard, wanneer we toString aanroepen op een object, retourneert deze een string die de klasnaam gevolgd door de hashcode van het object bevat. Laten we naar het voorbeeld kijken:

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } }

HashCode

Een hashcode is, eenvoudig gezegd, een unieke identificatiecode voor een object dat in het geheugen is opgeslagen. We kunnen de hashcode van een object ook bekijken door de methode hashCode() erop aan te roepen, bijvoorbeeld:

Main.java

Main.java

copy
123456789101112131415161718192021
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); int code = bob.hashCode(); System.out.println(code); } }

In dat geval rijst de vraag: hoe kunnen we iets specifiekers krijgen in plaats van de hashcode van een object? Voor zulke gevallen kunnen we de methode toString() overschrijven.

Overerving en methode-overschrijving zijn uitgebreide onderwerpen die we in een aparte cursus zullen behandelen. Voor nu gebruiken we methode-overschrijving alleen voor de methode toString().

Gebruik van toString()

Om een methode te overschrijven, moeten we de volgende syntaxis gebruiken:

Main.java

Main.java

copy
1234
@Override public String toString() { // block of code }

We gebruiken de annotatie @Override vóór deze methode. Met deze annotatie herkent de compiler dat we deze methode overschrijven. Vervolgens specificeren we de syntaxis public String toString(), waarmee we aangeven welke exacte methode we overschrijven.

In de body van deze methode definiëren we hoe ons object als een string moet worden weergegeven. Laten we de methode overschrijven voor de klasse Person:

Person.java

Person.java

copy
12345678910111213141516171819
class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

Het commando System.lineSeparator() wordt gebruikt om een nieuwe regel te creëren. We hebben gedefinieerd hoe ons object eruit moet zien door strings met hun waarden te combineren. Daarom zullen we, wanneer we proberen een object van de klasse Person af te drukken, gedetailleerde informatie over elk veld zien. Laten we een object afdrukken met behulp van de main-methode en bekijken hoe dit eruitziet:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

We hebben informatie verkregen over de klasse waartoe het object bob behoort en details over alle velden ervan. Zo kunnen we de methode toString() overschrijven en definiëren om de gewenste informatie weer te geven bij het afdrukken van een object. Laten we een ander object van deze klasse maken met behulp van de constructor om te zien en te bevestigen hoe de methode toString() het object transformeert:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); Person alice = new Person("Alice", 17, "female"); System.out.println(alice); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "." + System.lineSeparator(); } }

We zien dat het nieuwe object alice in de console wordt weergegeven met hetzelfde sjabloon.

Conclusie

Door gebruik te maken van de toString()-methode hebben we het proces van het weergeven van objectinformatie op het scherm sterk vereenvoudigd, waardoor we ruimte besparen in de main-methode.

1. Waarom hebben we de toString()-methode nodig?

2. Welke annotatie moet boven de toString()-methode worden gebruikt?

question mark

Waarom hebben we de toString()-methode nodig?

Select the correct answer

question mark

Welke annotatie moet boven de toString()-methode worden gebruikt?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 8

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Methode ToString()

Hoe een object eenvoudiger afdrukken?

Om alle gegevens van een object weer te geven met het commando System.out.println(object); in Java, is er een methode genaamd toString();.

toString()

De toString-methode in Java is een ingebouwde methode die behoort tot de Object-klasse. Deze wordt gebruikt om een stringrepresentatie van een object terug te geven. Standaard, wanneer we toString aanroepen op een object, retourneert deze een string die de klasnaam gevolgd door de hashcode van het object bevat. Laten we naar het voorbeeld kijken:

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } }

HashCode

Een hashcode is, eenvoudig gezegd, een unieke identificatiecode voor een object dat in het geheugen is opgeslagen. We kunnen de hashcode van een object ook bekijken door de methode hashCode() erop aan te roepen, bijvoorbeeld:

Main.java

Main.java

copy
123456789101112131415161718192021
package com.example; class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } } public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); int code = bob.hashCode(); System.out.println(code); } }

In dat geval rijst de vraag: hoe kunnen we iets specifiekers krijgen in plaats van de hashcode van een object? Voor zulke gevallen kunnen we de methode toString() overschrijven.

Overerving en methode-overschrijving zijn uitgebreide onderwerpen die we in een aparte cursus zullen behandelen. Voor nu gebruiken we methode-overschrijving alleen voor de methode toString().

Gebruik van toString()

Om een methode te overschrijven, moeten we de volgende syntaxis gebruiken:

Main.java

Main.java

copy
1234
@Override public String toString() { // block of code }

We gebruiken de annotatie @Override vóór deze methode. Met deze annotatie herkent de compiler dat we deze methode overschrijven. Vervolgens specificeren we de syntaxis public String toString(), waarmee we aangeven welke exacte methode we overschrijven.

In de body van deze methode definiëren we hoe ons object als een string moet worden weergegeven. Laten we de methode overschrijven voor de klasse Person:

Person.java

Person.java

copy
12345678910111213141516171819
class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

Het commando System.lineSeparator() wordt gebruikt om een nieuwe regel te creëren. We hebben gedefinieerd hoe ons object eruit moet zien door strings met hun waarden te combineren. Daarom zullen we, wanneer we proberen een object van de klasse Person af te drukken, gedetailleerde informatie over elk veld zien. Laten we een object afdrukken met behulp van de main-methode en bekijken hoe dit eruitziet:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "."; } }

We hebben informatie verkregen over de klasse waartoe het object bob behoort en details over alle velden ervan. Zo kunnen we de methode toString() overschrijven en definiëren om de gewenste informatie weer te geven bij het afdrukken van een object. Laten we een ander object van deze klasse maken met behulp van de constructor om te zien en te bevestigen hoe de methode toString() het object transformeert:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person("Bob", 20, "male"); System.out.println(bob); Person alice = new Person("Alice", 17, "female"); System.out.println(alice); } } class Person { String name; int age; String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } @Override public String toString() { return "Class Person;" + System.lineSeparator() + "name = " + name + ";" + System.lineSeparator() + "age = " + age + ";" + System.lineSeparator() + "gender = " + gender + "." + System.lineSeparator(); } }

We zien dat het nieuwe object alice in de console wordt weergegeven met hetzelfde sjabloon.

Conclusie

Door gebruik te maken van de toString()-methode hebben we het proces van het weergeven van objectinformatie op het scherm sterk vereenvoudigd, waardoor we ruimte besparen in de main-methode.

1. Waarom hebben we de toString()-methode nodig?

2. Welke annotatie moet boven de toString()-methode worden gebruikt?

question mark

Waarom hebben we de toString()-methode nodig?

Select the correct answer

question mark

Welke annotatie moet boven de toString()-methode worden gebruikt?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 8
some-alt