ich war bis jetzt immer der Meinung, dass es in Java "normale Klassen", "innere Klassen" und "anonyme innere Klassen" gibt.
Jetzt habe ich aber verschiedene Quellen gefunden, die mich verwirren. So steht zum Beispiel im "Java ist auch eine Insel"-Buch, Kapitel "6.11 Geschachtelte (innere) Klassen, Schnittstellen, Aufzählungen" einleitend:
Bisher haben wir Klassen, Schnittstellen und Aufzählungen kennengelernt, die entweder alleine in der Datei oder zusammen mit anderen Typen in einer Datei deklariert wurden.
unter folgendem Link habe ich dann auch noch das gefunden:
3.1 2 Weitere Bestandteile eines Java-Programms
Programme bestehen aus einer Folge von Anweisungen. Alle Programmiersprachen haben strikte Regeln, wie diese Anweisungen auszusehen haben und wie sie angeordnet sein müssen. Im Nachfolgenden sehen wir uns die für Java geltenden Regeln an.
Java-Programme werden in Dateien gespeichert, die einem bestimmten Aufbau entsprechen müssen. Welche Bedeutung die nachfolgenden Anweisungen haben, werden in einer späteren Lektion erläutert:
* Es darf pro Datei maximal eine package-Anweisung verwendet werden, die dann vor allen anderen Anweisungen stehen muss.
* Anschließend dürfen beliebig viele (d.h. auch keine) import-Anweisungen erfolgen.
* Zuletzt dürfen ein oder mehrere Klassendefinitionen folgen.
Und auch der Aufbau des AST im JDT legt nahe, dass eine CompilationUnit (eine Datei) mehrere (nicht geschachtelte) TypDeclarations enthalten kann. Wie kann ich das verstehen, kann mir vielleicht jemand ein Beispiel geben?
Danke für die schnellen Antworten (vorallem die erste)... Allerdings find ich's erstaunlich, dass man in einem Anfänger Thread keine Anfänger-Frage stellen darf, ohne gleich angemacht zu werden...
Du wurdest nicht 'angemacht' und du darfst hier Anfängerfragen stellen.
'Wo ist dein Problem' ist nicht notwendigerweise eine Anmache, sondern die ernst gemeinte Bitte, dein Problem mit diesem Sachverhalt genauer zu erläutern, da ich nicht sicher war, dich richtig zu verstehen.
Mir schien es etwas seltsam, das du dich anscheinend mit AST und CompilationUnit auskennst, aber dich dennoch fragst, ob es mehr als eine class Deklaration pro Datei geben kann, aber offensichtlich war genau das der Fall, womit sich die Frage erledigt hat.
Noch als Ergänzung: Ich hab grad nachgelesen, dass nicht markierte Klassen/Interfaces automatisch "friendly", also innerhalb eines Pakets sichtbar sind.