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

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Methode toString()

Wie kann man ein Objekt einfacher drucken?

Um alle Daten eines Objekts mit dem Befehl System.out.println(object); in Java anzuzeigen, gibt es eine Methode namens toString();.

toString()

Die toString-Methode in Java ist eine eingebaute Methode, die zur Object-Klasse gehört. Sie wird verwendet, um eine Zeichenkettenrepräsentation eines Objekts zurückzugeben. Standardmäßig gibt die Methode toString, wenn sie auf einem Objekt aufgerufen wird, eine Zeichenkette zurück, die den Klassennamen gefolgt vom Hashcode des Objekts enthält. Schauen wir uns das Beispiel an:

java

Main

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

Ein Hashcode ist einfach ausgedrückt ein eindeutiger Bezeichner für ein Objekt, das im Speicher gespeichert ist. Wir können den Hashcode eines Objekts auch sehen, indem wir die Methode hashCode() darauf aufrufen, zum Beispiel:

java

Main

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 diesem Fall stellt sich die Frage: Wie können wir etwas Spezifischeres als den Hashcode eines Objekts erhalten? Für solche Fälle können wir die Methode toString() überschreiben.

Vererbung und Methodenüberschreibung sind umfangreiche Themen, die wir in einem separaten Kurs behandeln werden. Für den Moment werden wir die Methodenüberschreibung nur für die Methode toString() verwenden.

Wie man toString() verwendet

Um eine Methode zu überschreiben, müssen wir die folgende Syntax verwenden:

java

Main

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

Wir verwenden die Annotation @Override vor dieser Methode. Mit dieser Annotation erkennt der Compiler, dass wir diese Methode überschreiben. Als nächstes geben wir die Syntax public String toString() an, die angibt, welche genaue Methode wir überschreiben.

Im Körper dieser Methode definieren wir, wie unser Objekt als Zeichenkette dargestellt werden soll. Lassen Sie uns die Methode für die Person-Klasse überschreiben:

java

Person

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 + "."; } }

Der Befehl System.lineSeparator() wird verwendet, um eine neue Zeile zu erstellen. Wir haben definiert, wie unser Objekt erscheinen soll, indem wir Zeichenfolgen mit ihren Werten verketten. Daher werden wir, wenn wir versuchen, ein Objekt der Klasse Person auszugeben, detaillierte Informationen über jedes Feld sehen. Lassen Sie uns ein Objekt mit der main-Methode ausgeben und sehen, wie es aussieht:

java

Main

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 + "."; } }

Wir haben Informationen über die Klasse erhalten, zu der das Objekt bob gehört, sowie Details zu allen seinen Feldern. Daher können wir die Methode toString() überschreiben und definieren, um die gewünschten Informationen anzuzeigen, wenn ein Objekt gedruckt wird. Lassen Sie uns ein weiteres Objekt dieser Klasse mit dem Konstruktor erstellen, um zu sehen und zu verstärken, wie die Methode toString() das Objekt transformiert:

java

Main

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(); } }

Wir können sehen, dass das neue Objekt alice in der Konsole mit derselben Vorlage angezeigt wird.

Fazit

Durch die Verwendung der Methode toString() haben wir den Prozess der Anzeige von Objektinformationen auf dem Bildschirm erheblich vereinfacht, was es uns ermöglicht, Platz in der Hauptmethode zu sparen.

1. Warum benötigen wir die Methode toString()?

2. Welche Annotation sollte über der Methode toString() verwendet werden?

Warum benötigen wir die Methode ``toString()``?

Warum benötigen wir die Methode toString()?

Wählen Sie die richtige Antwort aus

Welche Annotation sollte über der Methode ``toString()`` verwendet werden?

Welche Annotation sollte über der Methode toString() verwendet werden?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 8
We're sorry to hear that something went wrong. What happened?
some-alt