Gamewolf jag har följt den här tråden och jag tycker du har tagit dig lite vatten över huvudet i ditt exempel.
Om du försöker lära dig något så börja med enklare saker så du förstår dem, som ett exempel med att lära dig förstå hur static fungerar.
Om du deklarerar något till static så innebär det att det finns bara en instance av den, vilket i sin tur innebär att den ägs av klassen, och inte objektet.
Det innebär att om du skapar upp ett objekt av en klass, typ "MyClass c = new MyClass();", så får du EN instance (av oändligt många) av MyClass klassen.
MEN, om du har deklarerat något till static så äger KLASSEN den metoden/variabeln, INTE din instance.
Då kan du använda den såhär: "MyClass.myStaticMethod();"
Skillnad:
Static:
"MyClass.myStaticMethod();" <--- klassen äger den metoden
Non static:
"MyClass myClass = new MyClass();
myClass.myNonStaticMethod();" <--- instancen AV den här klassen äger den här metoden
Några exempel:
En main metod måste vara static för att när du kör ett java program så måste den veta exakt vad den ska köra. Genom att säga att den är static så berättar du för java att, det finns bara en utav den här, det finns inte 100 olika som du måste välja mellan. Utan bara 1, och det är den du ska köra.
this används för att berätta vilket av alla instancer av ett objekt som finns. Så om du är i ett objekt, så kanske det lever 100st sådana objekt, men this berättar för dig att det är just det här objektet av alla 100 som du ska använda. Det är inget som används i static av den anledningen att static behöver det inte, det finns bara en.
Det här är inget svar på dina frågor utan ett försök att hjälpa dig förstå lite varför du får dom problemen du får.
Och jag tycker det är viktigare för dig att du förstår det än att bara ha en lösning, så därför tycker jag du ska gå tillbaka lite med lättare saker för dig, och försöka förstå dem.
Lycka till, hör av dig om du behöver mer hjälp men jag kommer inte ge dig färdiga lösningar till något.