第7章 ファイル分割について

7.2 パッケージについて

「パッケージ」とは、Javaのクラス(ソースファイル)を目的に合わせてグループ化した単位のことを言います。
通常は、大規模なアプリケーションの開発をする場合に管理を容易にするために使用されます。
大規模なプログラムを開発していくと、他のプログラマーが既に作成済みのクラスを利用していく場合があります。そのときに作成したクラスが作成済みのクラスと名前が同じである場合があり、プログラムの中で混在させて使わなければならない時もあります。このときに、Javaではパッケージ(package)という仕組みにより、同じ名前であっても自身で作成したクラスと他者の作成したクラスを区別し使用することができます。


図 7.2.1: パッケージの利用

では次の項でパッケージを利用するための、定義方法について説明していきます。

7.2.1 クラスをパッケージに含める

クラスをパッケージに含めることで以下のような利点があります。

パッケージ利用の利点
  • 同じ役割をもつクラスを1つのパッケージにまとめることにより、そのクラスの持つ意味が分かりやすくなる。
  • 同じ名前を持つクラスが複数ある場合、名前の衝突を避け利用することができる。
  • クラス、メンバ変数、メソッド、コンストラクタにパッケージに関連したアクセス制限をつけることができる。

書式:パッケージ指定

パッケージ名はソースファイルの先頭に記述します。

凡例:パッケージ指定

パッケージ名を指定すると、クラスがそのパッケージ内に含まれたことになります。

これまでの学習で「package パッケージ名;」は既に記述していたことに気づいたのではないでしょうか。特に意識していなかったと思いますが、これまでのサンプルで同じ名前の「ComputerXXクラス」を各章で作成できていたのは、パッケージの仕組みを既に利用していたからです。
これまでのサンプルで利用してきたパッケージ名は、上で紹介したものとは少し違っていることにも気づいたと思います。「package jp.cp.f1.basic.ch07」パッケージ名の後に「.」(ドット)でさらに名前が繋がっています。このような形のパッケージをサブパッケージと呼びます。サブパッケージについては後の項で詳しく紹介します。

packageを指定しない場合

package名を指定しないファイルは「名前の無いpackage」というものに自動的に含まれます。無理に使用しなくても簡単なアプリケーション作成には影響ありません。しかし、ある程度の規模のアプリケーションを作成する場合package名を指定しないと、ファイル管理や既存同名クラス利用等のメリットがなくなる為できる限りpackageを利用していくことをお勧め致します。

NEXT>> 7.3 パッケージの利用について