Menu
Coddy logo textTech

toString()-Methode

Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy. Lektion 41 von 87.

Jede Klasse in Java erbt von der Klasse Object, die mehrere nützliche Methoden bereitstellt. Eine der am häufigsten überschriebenen Methoden ist toString(), die eine Zeichenfolgendarstellung eines Objekts zurückgibt.

Standardmäßig gibt toString() den Klassennamen gefolgt vom Hashcode des Objekts zurück, was nicht besonders hilfreich ist:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Person p = new Person("Alice", 25);
System.out.println(p);  // Person@15db9742

Indem du toString() überschreibst, kannst du eine aussagekräftige Ausgabe bereitstellen, die den Zustand des Objekts beschreibt:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Person[name=" + name + ", age=" + age + "]";
    }
}

Person p = new Person("Alice", 25);
System.out.println(p);  // Person[name=Alice, age=25]

Die Methode toString() wird automatisch aufgerufen, wenn du ein Objekt ausgibst oder es mit einer Zeichenkette verknüpfst. Das erleichtert das Debuggen erheblich, da du den Inhalt eines Objekts schnell sehen kannst, ohne zusätzlichen Code zu schreiben.

challenge icon

Aufgabe

Einfach

Erstellen wir ein Produktinventarsystem, das mithilfe benutzerdefinierter toString()-Implementierungen aussagekräftige Informationen zu Artikeln anzeigt. Du erstellst eine Product-Klasse, die die standardmäßige toString()-Methode überschreibt, um eine klare, gut lesbare Darstellung jedes Produkts bereitzustellen.

Du organisierst deinen Code auf zwei Dateien verteilt:

  • Product.java: Erstelle eine Klasse, die einen Inventarartikel repräsentiert. Jedes Product verfügt über drei private Felder: name (String), price (double) und quantity (int). Füge einen Konstruktor hinzu, der alle drei Felder initialisiert. Überschreibe die toString()-Methode so, dass sie eine formatierte Zeichenkette in genau diesem Format zurückgibt: Product[name=X, price=Y, quantity=Z], wobei X, Y und Z die tatsächlichen Feldwerte sind. Der Preis soll als einfache Zahl angezeigt werden (eine spezielle Formatierung ist nicht erforderlich).
  • Main.java: Erwecke deine Product-Klasse zum Leben, indem du Produkte erstellst und anzeigst. Du erhältst drei Eingaben: einen Produktnamen (String), einen Preis (double) und eine Menge (int). Erstelle mit diesen Werten ein Product und gib anschließend das Produktobjekt direkt mit System.out.println() aus. Dank deiner überschriebenen toString()-Methode werden dadurch automatisch die formatierten Produktinformationen anstelle der kryptischen Standardausgabe angezeigt!

Du erhältst drei Eingaben: den Produktnamen (String), den Preis (double) und die Menge (int).

Beachte, dass das direkte Ausgeben des Objekts automatisch deine toString()-Methode aufruft. Genau das macht das Debuggen und Protokollieren in realen Anwendungen so viel einfacher!

Probier es selbst

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Eingaben lesen
        String name = scanner.nextLine();
        double price = scanner.nextDouble();
        int quantity = scanner.nextInt();
        
        // TODO: Erstelle ein Product-Objekt mit den Eingabewerten
        
        // TODO: Gib das Product-Objekt direkt aus
        // (Dies ruft automatisch deine toString()-Methode auf!)
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Java-Compiler