名前無しパッケージ
 

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以降ではエラーとなるのでご注意下さい。



Copyright © 2002-2016, Your Technology Partner. All rights reserved.