Javaのプログラムには、クラス名を必ず作成する必要があります。
そのプログラムをファイル名を付けて保存、コンパイルします。
プログラムをコンパイル
コンパイルする際、以下のようなエラーをみたことはあるでしょうか。
class クラス名 is public, should be declared in a file named クラス名.java
実は、Javaのクラス名とファイル名には、名前のルールがあります。
publicでクラス名を定義する際、クラス名とファイル名を同じ(大文字や小文字も)にする必要があります。
ただのクラス名で定義する際、クラス名とファイル名は異なって問題ありません。
上記のエラーは、publicでクラスを定義したにもかかわらず、クラス名とファイル名が異なっていた場合に発生するエラーでした。
publicのクラスとただのクラスの違い
publicのクラスとただのクラスともに同じパッケージから呼び出すことができます。
しかし、
publicのクラスは、別のパッケージから呼び出すことができます。
ただのクラスは、別のパッケージから呼び出すことができません。
パッケージとは
大量なクラスを分類、管理できるようにグループ分けしたものをパッケージと呼びます。
例として、ランダムな整数を実行したい場合、先人が作ったパッケージから簡単に呼び出すことができます。
FQCNで呼び出し
int randomNumber = new java.util.Random().nextInt();
import文で呼び出し
import java.util.Random;
Random rand = new Random();
int randomNumber = rand.nextInt();
Javaで、この先人が作ったパッケージやクラスのことをJava APIと呼びます。
Javaを学習している際は、パッケージは意識しない場合が多い(使い捨てのプログラム)ので、どちらで定義しても実行結果が変わることは、ほとんどないでしょう。
まとめ
- publicでクラス名を定義する際、クラス名とファイル名を同じ(大文字や小文字も)にする必要があります。
- ただのクラス名で定義する際、クラス名とファイル名は異なって問題ありません。