Naja, es kommt oft vor, dass der Klassenname seine Funktion (implementiertes Interface, wichtige Superklasse), seine Rolle (
http://de.wikipedia.org/wiki/Design_Patterns#Liste_von_Mustern) oder seine Interaktionspartner (andere Systeme, andere wichtige Assoziationen, wie Aggregation, Komposition) wiederspiegelt.
Ein paar Beispiele:
Implementiert "List": ArrayList, LinkedList, ...
Erweitert "Exception": FileNotFoundException, NullPointerException, ...
Hat die Rolle "Listener" im Entwurfsmuster "Observer": MouseListener, KeyListener, ...
Erweitert abstrakten Listener (nennt sich dann "Adapter"): MouseAdapter, KeyAdapter, ...
Gängige Assotiationen (z.B: im Bereich Eingabe/Ausgabe): File, Input, Output, Stream, Reader, Writer usw.
Du siehst also, die meisten Klassennamen beantworten einfach die Fragen:
* Was stellt das Objekt dar (Funktion)
* Optional: Welche Rolle spielt es in Entwurfsmustern
* Optional: Mit welchen anderen Klassen interagiert die Klasse hauptsächlich (Assoziationen)
Der Rest ist aber dann beliebige eigene Namensgebung. Ich glaube, so wichtig ist das dann auch nicht.
Wenn du die Klassen einigermaßen sinnvoll nennst und etwas Javadoc dazu schreibst, sollte das genügen.
mfg, metax.
P.S.: Du kannst ja einfach mal in der Java Doku die Pakete mal überfliegen. java.io enthält Klassen zur Ein-/Ausgabe, java.util enthält hauptsächlich Datenstrukturen, java.util.regex enthält Reguläre Ausdrücke und AWT und Swing findest du selbst ;-)