私はJavaを学ぶ初心者です。Javaでは、すべてのソースファイルにパブリッククラスが含まれている必要があり、そのソースファイルはそのパブリッククラスと同じ名前を持つ必要があります。さらに、ソースファイルに2つのパブリッククラスを含めることはできません。この制限はなぜですか?
4
詳細がなければ、これはJavaの設計方法の歴史的な設計成果物です。C#などの最近設計された言語は、Javaに似ていますが、この制限はありません。
—
ガフーア
ベストプラクティスを実施するのではありませんか?これが唯一の理由だと思いました。C#では、技術レベルでこの制限はありませんが、ファイル名とクラス名が一致しない場合、または同じファイルに複数のクラスがある場合、StyleCopは文句を言います。Visual Studioは、クラスとファイルの関係を非常に奨励しています(ファイルを作成するクラス図、または.csファイルの名前を変更すると、Visual Studioはクラスの名前もリファクタリングするかどうかを尋ねます)。
—
アルセニムルゼンコ
古いスタイルのコンパイル言語では、リンカはすべての参照と外部シンボルを見つけます。ただし、Javaはリンクされていません-必要に応じて、実行時にjarをロードできます。リンクするステップがなければ、検索するファイル名がわかっていれば、クラス名をクラスパス内の場所にマップしようとするのははるかに高速です。
—
ポールトンブリン
grepの使用はどうですか?
—
ユーザー