大規模なプログラムでは、他の人達が設計したさまざまなクラスを利用する場合があります。時には、色々な人が作成した同じ名前のクラスを、プログラムの中に混在させて使わなければならない場合もあります。このような時に、packageを使ってクラス名を区別することが出来ます。
クラスをパッケージに含める
という作業をしておくと、同じ名前であってもクラスの名前にパッケージの名前をつけて、区別することが出来るようになります。
以下のように記述することで、指定したクラスを指定したパッケージに含ませることが出来ます。
package パッケージ名 ; アクセス修飾子 class クラス名 {; }
以下のように記述することで、異なる package の class を利用することが可能となります。
import パッケージ名 . クラス名 ; ・・・・・・・・・・・・・・・ クラス名 変数名 = new クラス名( ) ;
他のパッケージ内のクラスを利用するには、このように import が必要になります。上記のようにすると、コード内で異なるパッケージのクラスを利用するときにも、クラス名だけを記述するだけでよくなります 。
アクセス修飾子が public である Test クラスを test パッケージに含ませるためのプログラムの例
package test ;
public class Test {
}
上記のようにソースを記述することで test パッケージに Test クラスを含めることが出来ます。
アクセス修飾子が public である Test クラスを異なるパッケージ test から呼び出すプログラムの例
import test.Test ; class MainClass {
public static void main ( String [ ] args ) {
//Test クラスをインスタンス化する。
Test test = new Test( ) ;
} }
このようにソースを記述すると、test パッケージの Test クラスを利用することが可能になります。
Java 言語においては、異なる作者によるパッケージの名前が衝突することを避けるために、インターネット・ドメイン名 (以下単にドメイン名と記述します) を利用して世界的に一意なパッケージ名をつけることが推奨されています。
"jp.co.java_conf.foo" のように、ドメイン名のピリオド (".") で区切られた各識別子を逆順に並べ替えたものに、ドメイン内における一意性をそのドメインの責任において保証した識別子を連結したものをパッケージ名とすることにより、世界的な一意性を保証することができます。
ファイルの先頭で import 作業をしておくと異なる多くのパッケージを多く使用する場合、便利になります。