Kurzer Quellcode klein aber oho!

Wang

Bekanntes Mitglied
Hallo,

dieses simple Beispiel aus einem Lehrbuch hat so ziemlich sicher mein Verständnis über Konstruktoren zerstört.
Bisher wurde einem immer gesagt "ref.toString()" wäre die korrekte Form des Aufrufs.
Irgendwie leuchtet es mir jetzt nicht ein wie die Form im Quellcode dennoch dazu führt, dass die Zahl 1 ausgegeben wird?

Thanks.

Gruß
Wang

P.S. Nachdem ich mich inzwischen auch schon einige Zeit lang mit Java beschäftige, ist mir mein Thread wirklich peinlich.


Java:
public class Test11 extends Object
{
   private int var = 1;

   public String toString()
   {
      return Integer.toString (var);
   }
   
   public static void main (String[] args)
   {
      Object ref = new Test11();
      System.out.println (ref);
   }
}
 

eRaaaa

Top Contributor
???:L
Was hat das jetzt mit dem Konstruktor zu tun. Du überschreibst die toString-Methode und gibst dort "1" zurück.
Code:
System.out.println (ref);
führt dazu dass die toString Methode aufgerufen wird..ganz einfach, den Zusammenhang mit dem Konstruktor(der hier übrigens vom Compiler hinzugefügt wird, in deinem Code gibts keinen!!) verstehe ich nicht, erläutere mal genau wo du Verständnisprobleme hast
 

Wang

Bekanntes Mitglied
Code:
System.out.println (ref);
führt dazu dass die toString Methode aufgerufen wird..

Genau das verwirrt mich. Nach dem was bisher vermittelt wurde, hätte ich
Code:
System.out.println (ref.toString());
geschrieben. Irgendwie kann ich nicht nachvollziehen, warum automatisch die toString()-Methode aufgerufen wird.

(Das mit dem Überschreiben von Methoden habe ich soweit verstanden und ist nicht das Problem.)
 

eRaaaa

Top Contributor
Weil println bzw. print so implementiert ist.
Java:
//PrintStream.class
    public void println(Object x) {
        String s = String.valueOf(x);  <--- s.u.
        synchronized (this) {
            print(s);
            newLine();
        }
    }

//String.class
    public static String valueOf(Object obj) {
	return (obj == null) ? "null" : obj.toString();
    }
 
G

gman

Gast
Bisher wurde einem immer gesagt "ref.toString()" wäre die korrekte Form des Aufrufs

Ich glaube das Mißverständnis ist hier, das die "toString()"-Methode eben nicht immer explizit aufgerufen
werden muss. Sobald man ein Objekt mit println() "ausdruckt" wird automatisch die "toString()"-Methode
aufgerufen. Das geht, da sie eine Methode von "Object" ist und daher von jeder Klasse vererbt wird.
Wird die Method nicht überschrieben, steht dann immer so was wie: "Objektname@3214432".
Das ist die Standardausgabe von "Object"'s "toString".

Edit: Ich sollte lernen schneller zu tippen :D Hoffentlich kannste mit meiner Antwort trotzdem was
anfangen.
 

Wang

Bekanntes Mitglied
Vielen Dank für die sehr guten Erklärungen. Hab ich wieder was dazugelernt. ;)
 
Zuletzt bearbeitet:

JUserToto

Aktives Mitglied
Davon abgesehen...

[Java]public class Test11 extends Object[/Java]

das "extends Object" ist unnötig, da alle Klassen (bzw. Objekte) implizit von der Klasse Object abgeleitet werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Datentypen Datum konvertieren mit kurzer Monatsangabe Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
jhCDtGVjcZGcfzug Was genau ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 5
jhCDtGVjcZGcfzug Was ist mit diesem Quellcode gemeint? Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
F Quellcode wird nicht in cmd angezeigt Java Basics - Anfänger-Themen 8
N Erste Schritte Quellcode fehlerhaft Java Basics - Anfänger-Themen 2
J Methoden Quellcode DP Fibonaaci erklärt Java Basics - Anfänger-Themen 5
L Fehler in Quellcode?! Java Basics - Anfänger-Themen 3
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
Hacer Quellcode lesen Java Basics - Anfänger-Themen 13
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
G Quellcode verstehen Java Basics - Anfänger-Themen 9
F Quellcode optimieren... Java Basics - Anfänger-Themen 4
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
U Java Quellcode Schaltjahr Java Basics - Anfänger-Themen 13
D Quellcode verstehen Java Basics - Anfänger-Themen 4
G Quellcode "splitten" Java Basics - Anfänger-Themen 6
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
J Quellcode von einem Link kriegen? Java Basics - Anfänger-Themen 3
W Datentypen String in Quellcode umwandeln Java Basics - Anfänger-Themen 25
O Quellcode nach bestimmter Ausgabe durchsuchen Java Basics - Anfänger-Themen 14
J Java-Quellcode Java Basics - Anfänger-Themen 13
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
T Quellcode zur .jar oder .exe Java Basics - Anfänger-Themen 7
D Verbesserungsvorschläge zum Quellcode Java Basics - Anfänger-Themen 15
P Suche Java Programme mit gutem/anfängertauglichem Quellcode Java Basics - Anfänger-Themen 8
M Quellcode kann nicht kompiliert werden Java Basics - Anfänger-Themen 6
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
T Quellcode zu Jar? Java Basics - Anfänger-Themen 14
S Erste Schritte Fakultät Quellcode Java Basics - Anfänger-Themen 12
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
N Feste Hardcodierte Pfade im Quellcode Java Basics - Anfänger-Themen 6
S Allgemein: Quellcode einrücken Java Basics - Anfänger-Themen 8
H frage zu meinem quellcode Java Basics - Anfänger-Themen 10
M String in Quellcode umwandeln Java Basics - Anfänger-Themen 9
S Textfragmente aus Quellcode lesen und abspeichern Java Basics - Anfänger-Themen 2
U Netzwerk Chatprogramm Quellcode funktioniert nicht Java Basics - Anfänger-Themen 6
A Quellcode aus diesem Forum für komerzielle Zwecke/Bachelor Thesis? Java Basics - Anfänger-Themen 4
F Datei Quellcode Java Basics - Anfänger-Themen 8
W Hilfe bei Interpretation von Quellcode Java Basics - Anfänger-Themen 8
X Webseite auslesen ohne Quellcode zu splitten Java Basics - Anfänger-Themen 3
A log4j - wie kann ich im Quellcode initialisieren statt in der properties-Datei? Java Basics - Anfänger-Themen 2
N Quellcode absichern? Java Basics - Anfänger-Themen 21
M mit java quellcode im browser öffnen Java Basics - Anfänger-Themen 1
hdi Programmier-Stil : Speicher vs. Quellcode Java Basics - Anfänger-Themen 67
M Quellcode verbessern Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
I Kann nicht compilieren warum? Bei großen Quellcode. Java Basics - Anfänger-Themen 8
A Änderung im Quellcode > javac > keine Änderung in Kons Java Basics - Anfänger-Themen 6
C Quellcode richtig bisher? wie gehts weiter? Java Basics - Anfänger-Themen 13
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
D quellcode in webseite einbinden Java Basics - Anfänger-Themen 7
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
D Fragen zu Quellcode QuickSorter Java Basics - Anfänger-Themen 13
F Quellcode & Ausgabe Java Basics - Anfänger-Themen 6
M Java Quellcode in eine exe datei umwandeln Java Basics - Anfänger-Themen 4
G Quellcode kommentieren Java Basics - Anfänger-Themen 6
S html quellcode runterladen Java Basics - Anfänger-Themen 2
D Quellcode richtig lesen lernen Java Basics - Anfänger-Themen 8
S Von einer jar.Datei den Quellcode. Java Basics - Anfänger-Themen 1
A Jar Datei im Quellcode einbinden Java Basics - Anfänger-Themen 3
G Problem mit Quellcode! Java Basics - Anfänger-Themen 15
D Import von Quellcode Java Basics - Anfänger-Themen 2
H Wo in GUI-Klasse bringe ich Quellcode unter? Java Basics - Anfänger-Themen 8
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
O mathematische Formel in quellcode Java Basics - Anfänger-Themen 5
M Quellcode einschränken?! Java Basics - Anfänger-Themen 6
L Fehler im simplen Quellcode! Java Basics - Anfänger-Themen 2
P Länge des längsten möglichst klein Java Basics - Anfänger-Themen 2
Hanschyo Quicksort sortiert von groß nach klein Java Basics - Anfänger-Themen 3
K Sortierung eines int-Arrays von groß nach klein Java Basics - Anfänger-Themen 3
T Warum wird out klein geschrieben? Java Basics - Anfänger-Themen 4
W Erste Schritte Erster Buchstabe groß bzw. klein???? Java Basics - Anfänger-Themen 2
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
S getpreferredsize() zu klein? Java Basics - Anfänger-Themen 19
S World-Datei möglichst klein speichern? Java Basics - Anfänger-Themen 5
F JPanel zu klein Java Basics - Anfänger-Themen 5
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
N Variationen eines Strings - groß/klein Java Basics - Anfänger-Themen 3
L Programm so klein wie möglich machen Java Basics - Anfänger-Themen 12
F replaceAll / GROSS klein Java Basics - Anfänger-Themen 3
G Erster Buchstabe groß bzw. klein? Java Basics - Anfänger-Themen 4
O matrix klein halten Java Basics - Anfänger-Themen 3
T Entwder char auf groß oder klein prüfen, oder Exception Java Basics - Anfänger-Themen 3
A Prüfen ob Klein oder Großbuchstabe Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben