Mit
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
im statischen Kontext keinen Sinn?
Ganz einfach deshalb, weil
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?
Code:
static
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
Ganz einfach deshalb, weil
Code:
this
siehe auch:
Was bedeutet static?
Zuletzt bearbeitet von einem Moderator: