toString(), Funktionsweise?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

Sagen wir die toString() Methode ist z.B. folgendermaßen implementiert:
Code:
public class Anschrift { 
        private String strasse;  
        private String hausNr; 
        private int plz; 
        private String ort; 
     
        public Anschrift(String street,String h_Nr,int postleitzahl,String ortschaft) { 
            strasse = street; 
            hausNr = h_Nr; 
            plz = postleitzahl; 
            ort = ortschaft; 
        } // end of Konstruktor mit Parameter
        
        private Anschrift() {
            this.strasse = null;
            this.hausNr = null;
            this.plz = 0;
            this.ort = null;
        }
        
        public void setStrasse(String strasse) 
        {
            this.strasse = strasse;
        }
        public void setHausNr(String hausNr) 
        {
            this.hausNr = hausNr;
        }
        public void setPlz(int plz) 
        {
            this.plz = plz;
        }
        public void setOrt(String ort) 
        {
            this.ort = ort;
        }
        //implizite vaterklasse ist object/ bei klassen ohne extends      <============
        public String toString() { 
            return strasse + " " + hausNr + " " + plz + " " + ort; 
        } 
        
    } //end of class anschrift

Also sie wandelt das Object in ein String. Aber passiert das ganze ohne, dass sie explizit aufgrufen wird?
 

Wildcard

Top Contributor
Anonymous hat gesagt.:
Also sie wandelt das Object in ein String. Aber passiert das ganze ohne, dass sie explizit aufgrufen wird?
Nein. Allerdings ruft die Klassenbibliothek diese Methode in bestimmten Fällen automatisch auf. Beispiel:
Code:
System.out.println(anschrif);
 
G

Guest

Gast
Also wenn z.B. so eine Methode aufgerufen werden würde:
Code:
 public void setAddress(String street,String h_Nr,int postleitzahl,String ortschaft) 
    {
        anschrift = new Anschrift(street, h_Nr, postleitzahl, ortschaft); 
    }

...dann wird auch automatisch die toString() Methode aufgerufen?
 

VuuRWerK

Aktives Mitglied
Nein, sie wird maximal Aufgerufen wenn Du ein Objekt im PrintStream ausgeben willst, also bspw:

Code:
Anschrift anschrift = new Anschrift();
System.out.println(anschrift);   // Jetzt wird automatisch die toString-Methode aufgerufen

Solltest Du keine implementiert haben wird einfach eine Ebene höher in der Vererbungshirarchie gegangen und dann eine da implementierte toString-Methode aufgerufen, in Deinem Fall würde dann Object#toString aufgerufen, aber wie gesagt nur wenn Du keine toString-Methode hast!

Gut Schuß
VuuRWerK ;)
 

DocRandom

Top Contributor
Nein, aber wenn Du schreiben würdest:
Code:
public void setAddress(String street,String h_Nr,int postleitzahl,String ortschaft)
    {
        anschrift = new Anschrift(street, h_Nr, postleitzahl, ortschaft);
        System.out.println(anschrift);
    }
dann wird die Methode #.tostring aufgerufen!
mit :
Code:
public void setAddress(String street,String h_Nr,int postleitzahl,String ortschaft)
    {
        anschrift = new Anschrift(street, h_Nr, postleitzahl, ortschaft);
    }
erzeugst Du nur ein neues Anschrift-Opjekt!

Edit: mißt zu spät ;)
lg
DocRandom
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk toString() - Methode Allgemeine Java-Themen 6
Encera Unterschied zweier "toString"-Methoden Allgemeine Java-Themen 1
A Ist ein enum hier richtig? Enum toString() Methode. Allgemeine Java-Themen 1
T Sinn einer toString Methode Allgemeine Java-Themen 3
L ToString-Methode Allgemeine Java-Themen 6
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
M BufferedImage toString() überschreiben Allgemeine Java-Themen 5
A Bleibt toString() konstant? Allgemeine Java-Themen 8
E Seltsamer aufruf von java.util.Date.toString() Allgemeine Java-Themen 3
P Element toString Allgemeine Java-Themen 9
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
sylo toString() Methode eines Interfaces überladen. Allgemeine Java-Themen 17
G Arrays.toString Allgemeine Java-Themen 4
G toString() von java.io.File überschreiben Allgemeine Java-Themen 8
V Einfache toString() generieren? Allgemeine Java-Themen 6
S toString() für alle Member einer Klasse. Allgemeine Java-Themen 6
R toString() methode überschreiben mit rekursivem aufruf. Allgemeine Java-Themen 8
I Problem mit toString-Methode Allgemeine Java-Themen 6
M .toString() mit RegEx auseinanderpflücken. Allgemeine Java-Themen 17
B (String) und toString(), woliegt der Unterschied? Allgemeine Java-Themen 4
D Genaue Funktionsweise von MessageDigest Allgemeine Java-Themen 2
M MVC - Funktionsweise des Controllers Allgemeine Java-Themen 11
V Funktionsweise eines Spiele ZeitZählers Allgemeine Java-Themen 3
reibi Fragliche Funktionsweise des GC Allgemeine Java-Themen 10
D Funktionsweise Allgemeine Java-Themen 11
P Funktionsweise von Stack- und Snakedatentypen? Code? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben