System.out.println() - Aufbau

Ambitious123

Mitglied
Hallo zusammen,

bisher dachte ich das o.g. Code wie folgt zu interpretieren ist:
System = Klasse
out = statisches Attribut/Variable der Klasse System vom Typ PrintStream
println() = Methode der Klasse PrintStream

Nun habe ich gelesen:
Diese Anweisung ruft die Methode println() des Objektes out der Klasse System auf. Dabei ist out eine statische Variable vom Typ PrintStream, die beim Starten des Programms so initialisiert wird, daß ihre Ausgabe auf die Standardausgabe geleitet wird.

Kann mir das mal bitte jemand erklären?

Im gleichen Zusammenhang:

Wieso ist:
String var1; --> Referenzvariable? Wäre var1 jetzt ein Objekt der Klasse String? Bzw. "zeigt" auf ein Objekt der Klasse String?
Danke und Gruß

Ambitious
 
Zuletzt bearbeitet:
Nun habe ich gelesen:
Diese Anweisung ruft die Methode println() des Objektes out der Klasse System auf.
Kann mir das mal bitte jemand erklären?

Naja, da war der schreiber villeicht etwas unachtsam / knapp an der Zeit
Wenn man das ausformuliert sieht das so aus:
Klasse System hat eine Member-Variable (objekt) vom Typ PrintStream mit dem namen "out". Dieses Objekt "out" der Klasse PrintStream hat eine funktion println()

Im gleichen Zusammenhang:

Wieso ist:
String var1; --> Referenzvariable? Wäre var1 jetzt ein Objekt der Klasse String? Bzw. "zeigt" auf ein Objekt der Klasse String?

In manchen hochsprachen (z.B. c++) wird unterschieden zwischen dem eigentlichen Objekt und der Referenz auf dieses (Stichwort "pointer")

In Java hat man versucht das ganze einfacher zu halten (Weniger Verantwortung für den Programmierer, aber auch weniger macht) und einfach gesagt: "Es gibt nurnoch "pointer" aka Referenzen.
Mit Objekten ist also kein "Call by Value" mehr möglich. Eine Ausnahme dazu bieten die Primitiven Datentypen (Java Standard: Primitive Datentypen)

da String (erkenntbar am großen S) kein primitiver Typ ist handelt es sich hier um ein Objekt, also eine Referenz
 
Zuletzt bearbeitet:

Zurück
Oben