Eventuell durch externe APIs die zuerst gestartet werden, aber wozu?
Weißt du denn, wozu static dient? Beim Programmstart hast du keine Instanz deiner Main-Klasse, also kannst du nur statische Methoden und Variablen verwenden.
Mach in der main Methode halt eine Instanz der aktuellen Klasse und ruf darauf "non-static" Methoden auf... Was du willst ist irgendwie ziemlich verquer.
Allerdings noch etwas: Warum? Was genau ist da jetzt "passiert", das es geht? Denn mit "new namedermainklasse().methode" ist es doch das gleiche wie mit "this.methode" - was aber nicht funktioniert..
Sonst legst du am Ende 5 Instanzen an, die immer alle an der selben Position sind/gleich groß sind/sich gleich schnell bewegen/irgendwie sonst gleich sind.
[EDIT]In static geht kein this, weil this auf die aktuelle Instanz des Methodenaufrufs verweißt und static nicht innerhalb einer Instanz aufgerufen wird. (Es ist zwar möglich, Eclipse meldet aber z. B. bei this.statischeMethode() eine Warnung)[/EDIT]
Allerdings noch etwas: Warum? Was genau ist da jetzt "passiert", das es geht? Denn mit "new namedermainklasse().methode" ist es doch das gleiche wie mit "this.methode" - was aber nicht funktioniert..
this bezieht sich auf "aktuelle Instanz". Bei statischen Methoden ist die aktuelle Instanz aber garnicht bekannt/bzw. gibt es sie garnicht. static heißt, zur Klasse gehörend. Dort sind also nur Informationen zugänglich (Daten/Methoden), die die Klasse betreffen
sorry ... aber "STATIC" ist ein sog. KEYWORD und gehört damit zu den absoluten basics von java ...
es bedeuet das etwas im statischen kontext unabhängig von objekten / instanzen direkt zu einer klasse gehört ... und damit auch für alle instanzen gleichzeitig gültigkeit hat ...
es ist leider bei eigentlich 100% aller anfänger zu beobachten das diesen erstmal beigebracht wird schön alles prozedual static in main ablaufen zu lassen ... vielleicht hier oder da mal die eine oder andere auslagerung ... und mit objekten wird so wenig wie möglich gearbeitet ...
irgendwann werden dann mal objekte eingeführt ... also "Object x=new Object()" und darauf werden dann methoden gecallt wie "x.toString()"
was jetzt bei vielen einfach nicht klick macht ist das wenn sie eine klasse schreiben diese ebenfalls so zu behandeln ist ... und der logische schritt wäre einfach "KlassenName y=new KlassenName()" und dann mit der instanz "y" die methoden callen ...
und das unterscheided java und objektorientierte programmierung von der direkt prozedualen programmierung wie man es aus z.b. C kennt ..
das verständnis dafür kommt im laufe der zeit ...