BohYoh.comトップページへ
Java FAQ
目次

二つ以上のクラスをソースプログラムで定義しようとするとエラーになるのはどうしてですか。

 二つ以上のクラスを定義したソースプログラムをコンパイルすると、コンパイルエラーになる場合と、ならない場合とがあります(必ずしもコンパイルエラーとなるわけではないことに注意しましょう)。クラスがpublicであるかどうかに依存するからです。
 ソースプログラムと、publicなクラスに関しては、以下のような制約があります。
(a) 1個のソースプログラムには、publicなクラスを0個または1個しか定義できない。
ソースプログラム中には、非publicクラスは何個でも定義できますが、publicクラスを定義できる個数は0個もしくは1個に限られています。そのため、ソースプログラム中にpublicなクラスを2個以上定義しようとすると、コンパイルエラーとなるのです。

(b) publicクラスの名前とソースプログラムのファイル名は一致していなければならない。
たとえばpublicクラスA1と非publicクラスA2を宣言するのであれば、ソースプログラムのファイル名は、A1.javaでなければなりません。A2.javaとしてはいけません。


戻る

BohYoh.comロゴ