packageが無いのにパッケージ?
Java2の仕様書には"§7.4.2 Unnamed Packages"(名前無しパッケージ)
という項目があります。
名前無しパッケージとは、package宣言を持たないクラスのことを言います。
名前無しパッケージは、プラットフォームの違いはあっても最低一つはサポートされるべきだと、
上記のページで規定されています。
最低一つと言うことは、二つや三つあってもええのん??? という疑問が出ますよね?
答えは「はい」です(節の見出しがpackagesと複数になっていますよね)。
どういうことかと言うと、違うディレクトリに配置された名前無しパッケージは、
それぞれ別のパッケージと判断されるということなんです。
C:\Source\Java\ |
┣━ | nanasi |
┗━ | gonbe |
今、カレントディレクトリがC:\Source\Java\nanasiだとすると、
その中にある名前無しパッケージはコンパイラによって全て同一のパッケージだと解釈されます。
一方カレントディレクトリがC:\Source\Java\gonbeの場合は、
これはまた別の名前無しパッケージとして扱われます。
ディレクトリという概念のないOSの上でコンパイルする場合は、
名前無しパッケージが一つしか存在しないことになります。
最低一つとはこういう意味です。
なおJ2SE1.4.0以降、名前無しパッケージのクラスをimportすることは出来なくなりました。
import クラス名;
と書いてあるクラスのコンパイルは、J2SE1.4.0以降ではエラーとなるのでご注意下さい。
|