wieso wird eine Klassenmethode, die void liefert und nicht als static
deklariert ist vom Compiler anerkannt, eine Methode die nicht void ist
jedoch nicht ???
Das geht auch bei der main(String[] argv) „HauptMethode“, d.h. der Compiler
nimmt sie auch ohne static an.
Ich gehe davon aus, dass du das Konzept statischer und dynamischer Methoden noch nicht vollständig erkannt hast. Für die Entscheidung, warum der Compiler manchmal static Methoden fordert, bzw. manchmal auch ohne static auskommt, ist meist der Sourcecode vonnöten. Grundsätzlich lässt sich aber sagen, dass der Compiler ohne Probleme eine main methode auch ohne static akzeptiert. Nur ausführen laesst sich die klasse dann nicht. Sollte dies doch der Fall sein, dann nimmt der Compiler bei fehlendem static wohl standardmässig static für die main Methode.
Weiter gilt: alle Methoden, die als static definiert sind, lassen sich auch ohne Instanziierung aufrufen (also ohne var = new Type(…) ). Alle Methoden, die ohne Instanziierung aus einer static definierten Methode aufgerufen werden, moniert der Compiler sofort (er fordert ein static!). Direkt in dynamischen Methoden führt ein Aufruf einer Methode eines nicht instanziierten Objekts udn ohne static erst bei Laufzeit zu einer Null-Pointer-Exception… Ich hoffe die allgemeine Erklärung hat halbwegs geholfen… ansonsten mal die Klasse um die es geht zuschicken! :o)