Richtige Ausgabe nur mit toString() - Warum?

expensne

Mitglied
Hallo Zusammen, :)

hätte da mal wieder eine kleine Frage und zwar sollte ich folgendes Programm schreiben:

Java:
class DemoKlasse
{
    private int wert;
    
    DemoKlasse(int wert)
    {
        this.wert = wert;
    }
    
    int getWert()
    {
        return this.wert;
    }
    
    void setWert(int wert)
    {
        this.wert = wert;
    }
    
    DemoKlasse addieren(DemoKlasse obj)
    {
        DemoKlasse neuesobjekt = new DemoKlasse(obj.wert + this.wert);
        return neuesobjekt;
    }
    
    public String toString()
    {
        return "Summe der 2 Objekte: " + wert;
    }
}


Es soll die Werte von zwei DemoKlassen addieren, soweit ist mir alles klar, nur wollte ich das anfangs so machen:

Java:
class DemoKlasse
{
    private int wert;
    
    DemoKlasse(int wert)
    {
        this.wert = wert;
    }
    
    int getWert()
    {
        return this.wert;
    }
    
    void setWert(int wert)
    {
        this.wert = wert;
    }
    
    DemoKlasse addieren(DemoKlasse obj)
    {
        DemoKlasse neuesobjekt = new DemoKlasse(obj.wert + this.wert);
        return neuesobjekt;
    }
    
}

Also ohne toString(), aber dann bekomm ich Ausgaben die so aussehen "Abgabe7.DemoKlasse@27ecfcd9" wobei "Abgabe7." das Package ist.

Nun stelle ich mir die Frage wie eine solche Ausgabe zustande kommt, wo genau toString() sich "dazwischen klemmt" und ob es nicht eine Lösung ohne toString() gibt, da ich toString() eigendlich nicht implementieren sollte, sondern wirklich nur das was sonst in dem Programm steht.


Mit freundlichen Grüßen
expensne
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
Oben ist doch toString überschrieben, warum solltest du das jetzt nicht machen?

Die Klasse Object definiert die toString-Methode. Somit hat jedes Objekt in Java, welches implizit von Object abgeleitet ist die toString-Methode definiert. Die Klasse Object gibt an der Stelle den package/Klassennamen aus und vielleicht einen Hash oder was auch immer das am Ende ist.

Dadurch, dass im oberen Code die toString Methode angegeben und damit ÜBRSCHRIEBEN wurde, siehst du an der Stelle vernünftigen Text.

Übrigens wird die toString-Methode manchmal auch implizit aufgerufen, ohne dass du das tust:
Java:
System.out.println(instanzDerDemoklasse);
Das ist das gleiche wie:
Java:
System.out.println(instanzDerDemoklasse.toString());
 

stg

Top Contributor
Was du da siehst ist die Ausgabe von der geerbten toString()-Methode, die du von der Klasse Object geschenkt bekommst. Die ist immer so aufgebaut, wenn sie nicht überschrieben wurde (Klassenname + Haswert der konkreten Instanz)

Die toString() Methode wird bei Bedarf implizit aufgerufen. Etwa wenn du versucht direkt ein Objekt auszugeben.

Deine toString()-Methode, wie du sie geschrieben hast, ist aber Mist. Diese sollte sich immer auf die konkrete Instanz beziehen!

Wenn du toString() aber gar nicht überschreiben sollst, dann greif doch einfach direkt per getter auf 'wert' zu und gib diesen direkt aus.
 
Zuletzt bearbeitet:

Natac

Bekanntes Mitglied
Ich schätze im Moment hast du sowas:
Java:
DemoKlasse dk = ...
System.out.println(dk);//Impliziter Aufruf von .toString()
Wenn du toString nun nicht verwenden willst, dann würde ich dir zu diesem Konstrukt raten;
Java:
DemoKlasse dk = ...
System.out.println("Summe der 2 Objekte: "+dk.getWert()); //string mit + aus Teilen zusammenbauen
 

expensne

Mitglied
Hallo,

also mit dem getter bekomm ich auch nur den Hashcode: Abgabe7.DemoKlasse@603a9c52

Java:
    DemoKlasse addieren(DemoKlasse obj)
    {
        DemoKlasse neuesobjekt = new DemoKlasse(obj.getWert() + this.getWert());
        return neuesobjekt;
    }

UPDATE:
Sorry, jetzt hab ich's verstande, wenn ich dann den getter bei dem neu erzeugten Objekt verwende bekomm ich den gesuchten Wert, danke! :)


Mit freundlichen Grüßen
expensne
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S richtige antworten [%] ausgabe Java Basics - Anfänger-Themen 7
krgewb Keine richtige Doku Java Basics - Anfänger-Themen 5
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
M Kennt jemand die richtige Lösung? Java Basics - Anfänger-Themen 7
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
C Lotto 3, 4, 5, 6 Richtige nach x Ziehungen ermittelt.. Java Basics - Anfänger-Themen 7
D Richtige Kommentierung Klassenvariablen Java Basics - Anfänger-Themen 19
G Die richtige Methode aus einer DTO auszurufen Java Basics - Anfänger-Themen 27
E Die richtige Suche in der API Java Basics - Anfänger-Themen 1
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
L Collections Ist eine Arraylist hier das richtige? Java Basics - Anfänger-Themen 12
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
A OOP Richtige Verwendung von ArrayList und equals Java Basics - Anfänger-Themen 24
I Richtige Java-Version finden? Java Basics - Anfänger-Themen 17
Meeresgott Richtige Dokumentation Java Basics - Anfänger-Themen 1
Meeresgott Richtige Dokumentation Java Basics - Anfänger-Themen 22
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
H Ist Java überhaupt die richtige Sprache für das Projekt? Java Basics - Anfänger-Themen 8
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
A richtige Kombination aus Werte- und Referenztypen Java Basics - Anfänger-Themen 63
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
X Methoden Wort aus String löschen und richtige Verschachtelung Java Basics - Anfänger-Themen 17
X Ist Java für mich das richtige? Java Basics - Anfänger-Themen 10
D Simulation von Geburt/Tod und "richtige" Erkennung eines Hindernisses Java Basics - Anfänger-Themen 7
F In ArrayList wird nicht der richtige Wert gespeichert Java Basics - Anfänger-Themen 6
S Richtige String-Variable finden Java Basics - Anfänger-Themen 3
K Richtige Pfadangabe einer Textdatei Java Basics - Anfänger-Themen 7
P Ist Java die richtige Programmiersprache dafür? Java Basics - Anfänger-Themen 29
Dit_ invokeLater | richtige Anwendung Java Basics - Anfänger-Themen 2
L eine richtige anfänger-frage Java Basics - Anfänger-Themen 3
J FileOutputStream richtige Pfadangabe? Java Basics - Anfänger-Themen 8
D Der richtige Layout Manager Java Basics - Anfänger-Themen 8
P Keine richtige Codeabarbeitung?! Java Basics - Anfänger-Themen 9
U Richtige Benutzung der API-Doku Java Basics - Anfänger-Themen 8
G Richtige Syntax für Bruch Java Basics - Anfänger-Themen 12
N Anfängerfrage richtige Syntax und Frage zu Vector Java Basics - Anfänger-Themen 7
G Polymorphismus und die richtige Anwendung Java Basics - Anfänger-Themen 6
B Ist Java das richtige für mich? Java Basics - Anfänger-Themen 12
W Java das richtige? Java Basics - Anfänger-Themen 9
L JTabbedPane, richtige Übergabe von Tabs Java Basics - Anfänger-Themen 18
M Welche Javaversion ist die Richtige? Java Basics - Anfänger-Themen 14
S Java Games Programieren. Der richtige Weg dorthin. Java Basics - Anfänger-Themen 4
M Java die richtige Sprache? Java Basics - Anfänger-Themen 4
S Web Mining - XML Filter der richtige Anstatz? Java Basics - Anfänger-Themen 2
W Java Web Start das richtige? Java Basics - Anfänger-Themen 11
J Richtige Auagabe in einer *.txt Java Basics - Anfänger-Themen 2
B Ist Java das richtige für folgendes Programm! Java Basics - Anfänger-Themen 2
T Bild drehen + richtige größe berechnen Java Basics - Anfänger-Themen 4
M Richtige Paarungen aus Array ausgeben Java Basics - Anfänger-Themen 2
bernd Richtige Pfadangabe für das Kopieren von Dateien Java Basics - Anfänger-Themen 10
A Java wirklich das richtige? Java Basics - Anfänger-Themen 20
B Paar richtige Anfängerfragen Java Basics - Anfänger-Themen 7
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25

Ähnliche Java Themen

Neue Themen


Oben