PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Static, Dynamisch? Unterschied?


Unfug
2005-01-06, 13:25:21
Hallo,

was ist static und was dynamisch in einer Java Klasse?.

Wenn man "global" eine Variable zuweist und dann noch eine Methode hat, dann meckert das Main Programm, wenn man die globale Variable der Methode übergeben will (im Main Programm).
Aber sobald die Methode static ist gehts.
Erklärung??

Dr.Doom
2005-01-06, 13:52:26
Frage dich lieber mal, wozu du eine static Variable einer (Instanz-) Methode übergeben willst.

SGT.Hawk
2005-01-07, 03:19:02
Wieso ist das ungewöhnlich,es ist möglich nur andersherum geht es nicht...
allerdings verstehe ich das Problem des Threadstarters nicht so ganz.Der main übergibst du noch ein weitere Variable?!

HellHorse
2005-01-07, 12:02:25
Statische Variablen sind Variablen der Klasse oder Variablen, die von allen Instanzen der Klasse geteilt werden (Java macht da keinen Unterschied).
Instanzvariablen sind Variablen der aktuellen Instanz (this) der Klasse.

Warum können nun Instanzvariablen nicht aus einen statischen Kontext referenziert werden? Weil es dort kein this gibt. Warum? Was wäre denn denn die aktuelle Instanz?

Ok, wenn jetzt Java Metaklassen hätte wäre this die aktuelle Klasse, Instanz der Metaklasse. Aber in auch in diesem Fall wäre die Instanzvariable nur da, wenn die Metaklasse von der Klasse erbt (kommt vor).

Warum können statische Variablen von einen nicht statischen Kontext referenziert werden? Weil die Klasse bekannt ist.

Dr.Doom
2005-01-07, 13:33:17
Wieso ist das ungewöhnlich,es ist möglich nur andersherum geht es nicht...Wenn's ginge, wieso "meckert das Main Programm" dann? ;)

SGT.Hawk
2005-01-07, 17:09:17
Ich meinte ja,dass man aus einer static Methode nicht auf Instanzvariablen zugreifen,weil welche Instanz soll denn refrenziert werden.Andersherum aus einer Instanzmethode kann ich static Variablen ja ändern,da sie ja Klassenen bezogenen ist.