static und this

Status
Nicht offen für weitere Antworten.

Tobias

Top Contributor
Mit
Code:
static
deklarierte Methoden und Variablen gehören der Klasse und nicht einem bestimmten Objekt. Das hat den Vorteil, das alle Objekte einer Klasse dieselben static-Elemente benutzen. Nicht nur mit den selben ausgestattet sind, wie bei "normalen" Variablen und Methoden, sondern die selben benutzen - sprich static-Elemente gibt es exakt einmal.

Deshalb werden static-Elemente auch nicht vom Konstruktor initialisiert bzw. kreiert, sondern vorher vom "statischen Initialisierer", der ebenfalls exakt einmal ausgeführt wird!

Warum aber macht
Code:
this
im statischen Kontext keinen Sinn?
Ganz einfach deshalb, weil
Code:
this
auf den Speicherbereich zeigt, wo ein bestimmtes Objekt der Klasse liegt - die statischen Elemente liegen aber nicht dort (im Heap), sondern zentral in einem anderen Speicherbereich, auf den es keine einfach zugängliche Referenz wie this gibt.

siehe auch:
Was bedeutet static?
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben