System.out.println

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine Frage bzgl System.out.println

Aus der Doku habe ich mitbekommen dass out ein Objekt der Klasse PrintStream ist. Diese Klasse implementiert eine Methode println, deswegen ist der obige Aufruf möglich.

Nun, out ist ein statisches Objekt bzw. ein statisches Attribut von der Klasse System. Meine Frage:

Es gibt bei statischer Methode eine Einschränkung, dass eine statische Methode nicht auf nicht-statische Variablen zugreifen kann. Gibt es bei statisches Objekt bzw. Attribut solche Einschränkungen?

Vielen Dank.

Schöne Grüße aus Rheinland,

Eure Ratna;)
 
Hi

versteh das Problem nicht ganz.

Normale Variablen in Klassen
gibt es ja pro Objekt einmal drin.
Wenn man dann eine normale Methode dieses Objekts aufruft
kann man in der Methode auf die Variablen des Objekts zugreifen.

Statisches Zeug gibt es für alle Objekte insgesamt nur einmal.
Man kann statische Sachen auch verwenden, ohne überhaupt ein Objekt zu erzeugen.

In stat. Methoden kann man deswegen nur stat. Variablen der Klasse verwenden,
weil a) bei normalen Variablen nicht bekannt wäre,
von welchem Objekt sie genommen werden sollen
b) es eben auch funktionieren muss, wenn es kein Objekt (und damit keine normale Variable) gibt.

Wenn man der stat. Methode ein Objekt der eigenen Klasse gibt (zB. als Parameter)
kann man dadurch schon auf die Normalvar. dieses Objekts zugreifen.
Da gibts ja einen Anhaltspunkt, welche Normalvars.


Und eine stat. Variable greift von selbst auf gar nichts zu, egal ob stat. oder nicht.
Auf Variablen kann nur von Methoden aus zugegriffen werden.
 

Neue Beiträge

Zurück