publicクラス名とJavaファイル名

http://q.hatena.ne.jp/1122966784
http://materia.jp/blog/20050802.html#p02
http://d.hatena.ne.jp/renmin-plus/20050803

publicクラスを書くJavaファイルはどうしてクラス名と同じでないといけないのか?
classファイルの話でなくjavaファイルの話。


コンパイルするとき、"クラス名.java"でファイルを探せると、依存クラスの解決(芋ずるコンパイル)がやりやすいかららしい。コンパイラの実装がやりやすいからと。


でもpublicでないクラスは、どうして違ってもかまわないのか?
同じパッケージだったらいいかみたいな(理由になってないな)。
うーむむむ