理由: Java は解釈されて実行されます。実行時にすべてのクラス ファイルがメモリに置かれるわけではありません。代わりに、インポートが発生すると、対応するファイル ディレクトリに移動して、対応するクラス ファイルを見つけます。
パブリック クラスの場合は、プロジェクト内のどのクラスからも参照できます。使用する前に、対応するクラス ファイルをインポートするだけです。クラス名とファイル名が 1 対 1 で対応すると、仮想マシンは対応するパス (パッケージ名) で対応するクラス情報を見つけやすくなります。そうしないと、見つけるのが難しくなり、費用も高くなります。
概要:
ソース ファイル (.java) では、public で変更されていないクラスも同じファイル名を持つことができます。
ソース ファイル内のクラス名とファイル名の間に不一致がある可能性がありますが、パブリックで変更することはできません。
パッケージ内にパブリックで変更されたクラスがない場合は、このパッケージを考えてください I 「顧客プログラマ」にインターフェイスを提供できないため、意味がないと思われます public で変更されていないクラスに public で変更された静的メソッドが含まれていたとしても、「顧客プログラマ」にはアクセス権限がありません。
ソース ファイルが public で変更されていないクラスは、主に public で変更されたクラスを「サポート」します。
.java ソース ファイルには多くのクラスを記述しないことをお勧めします。
main メソッドは、必ずしもパブリックに変更されたクラスで実行する必要はありません。ただし、メイン メソッドはパブリックに変更する必要があります。
「Java で考える」の説明:
为Java创建一个源码文件的时候,它通常叫作一个“编辑单元”(有时也叫作“翻译单元”)。每个编译单元都必须有一个以.java结尾 的名字。而且在编译单元的内部,可以有一个公共(public)类,它必须拥有与文件相同的名字(包括大小写形式,但排除.java文件扩 展名)。如果不这样做,编译器就会报告出错。每个编译单元内都只能有一个 public类(同样地,否则编译器会报告出错)。那个编译 单元剩下的类(如果有的话)可在那个包外面的世界面前隐藏起来,因为它们并非“公共”的(非public),而且它们由用于主public 类的“支撑”类组成。编译一个.java文件时,我们会获得一个名字完全相同的输出文件;但对于.java文件中的每个类,它们都有一个. class扩展名。因此,我们最终从少量的.java文件里有可能获得数量众多的.class文件。如以前用一种汇编语言写过程序,那么可能已 习惯编译器先分割出一种过渡形式(通常是一个.obj文件),再用一个链接器将其与其他东西封装到一起(生成一个可执行文件),或 者与一个库封装到一起(生成一个库)。但那并不是Java的工作方式。一个有效的程序就是一系列.class文件,它们可以封装和压缩到 一个JAR文件里(使用Java1.1提供的jar工具)。Java解释器负责对这些文件的寻找、装载和解释(注释①)。 ①:Java并没有强制一定要使用解释器。一些固有代码的Java编译器可生成单独的可执行文件。
以上がJava ファイル名がクラス名と同じである必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。