Dateiname für Quelldatei

Status
Nicht offen für weitere Antworten.

hever

Mitglied
Hallo zusammen,
ich habe eben im Buch "Java ist auch eine Insel" gelesen, dass eine Quelltextdatei immer so wie die in Ihr stehende Klasse heißen muss, und das auch noch Case Sensitive.

Ich habs bei mir einfach mal gewagt, einen Dateinamen != Klassenbezeichnung zu wählen und ich kanns trotzdem compilieren. es wird dann nur automatisch eine Klassenbezeichnung.class Date erstellt und keine (Dateiname der Quelldatei).class.

Dies führt mich zu der annahme, das es eigentlich egal ist, wie die Quelldatei benannt wird. Mir ist schon klar das man es der Übersicht halber machen sollte aber ich interessiere mich fürs Kleingedruckte und würde gerne wissen, was ganz genau passiert oder passieren kann wenn ich die Quelldatei anders benenne oder warum es diese konvention gab oder gibt das die Quelldatei gleich Klassenname sein muss.

Vor allem was macht man, wenn man mehrere Klassen in einer Datei hat?

Danke im Vorraus
hever
 
Du benutzt keine "public"-Klassen, oder? Das mit den Dateinamen gilt nur für "public class"en. Aber sobald man mit Packages (Verzeichnisse im Dateisystem) arbeiten will (und ich würde das seeehr empfehlen :wink🙂, muss man die Klassen "public" machen (sonst kann man sie an anderen Orten nicht benutzen).
 
.... tja mic checker ... noch ist alles public .... vor nem Jahr als ich hier das erste mal gesehen wurde dachte ich auch das das reicht aber die erfahrung lehrt uns das es auf dauer nicht anders gehen wird!

Nimms nicht persöhnlich oder als angriff ist nur ein Weiser ratschlag der älteren Kaste die ihr Geld mit JAva verdient!
 
Du benutzt keine "public"-Klassen, oder?
-Nein ich hatte die Klasse nicht public deklariert.

Der Compiler könnte doch theoretisch, unabhängig davon, wie die Dateinamen lauten einfach die entsprechenden Class-Files generieren. Macht er ja bei den Klassen ohne Modifier auch, also ohne voranstehendes public.

Darum immer noch meine Frage warum brauch der Compiler die public Classes in einer gleichnamigen Quelltextdatei ?

Und noch eine andere Frage:
Der Applikations-Klassenlader schaut einfach nur in den Classpath und öffnet die Klassen die dort mit dem hoffentlich richtigen Dateinamen.class liegen und verwendet nicht noch weitere Suchalgorithmen, stimmt das so?

Aber danke schonmal
hever
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben