【第13回】パッケージについて理解する【第13回】パッケージについて理解する今回は、パッケージについての紹介です。パッケージについて学ぶことで、既存のクラスを利用するための準備が整うことになります。前回と同様に、複数クラスを利用する事にメリットを感じている複数のクラスを作成していくうちに、クラスが煩雑になりがちです。そこでパッケージを用いて整理する事を学びましょう。パッケージとは何かさて、パッケージとは一体何でしょうか?パッケージとは、大雑把にいってしまえば、たくさんあるJavaのクラスを分類するための仕組みのことです。foo;と記述します。これでクラスMyClassが、パッケージfooに属することを宣言したことになります。逆に、異なるパッケージに属するクラスを使用したい場合、import文を使用して異なるパッケージのクラスを使用することを宣言しなければなりません。以下のようにしてインポート宣言を行います。foo.*;1.オブジェクトとは?ここまでの説明だけでは、面倒な手続きが余計に増えただけで、なんだかあまりありがたくありませんね。それでは、パッケージを利用することのメリットとは何でしょう?簡潔にまとめると、パッケージを利用することで以下のようなメリットを得ることができます。関連するクラスをまとめることで、クラスの分類・整理がしやすくなる。名前空間を利用することで、クラス名の衝突を防ぐことが出来る。かみ砕いて説明しましょう。実際の開発では、数十、数百単位のクラスを作成することも希ではありません。同じ名前のクラスがあるかどうかを考えるだけでも嫌になりますよね。この問題もパッケージを使用することで解決されます。異なるパッケージであれば、同じ名前のクラスがあっても許されるからです。この仕組みは複数メンバーで共同開発を行う場合も有効です。いう同じ名前のクラスを作っても大丈夫です。AさんとBさんは、それぞれ自分の担当するパッケージの中でクラス名が重複しないように気をつければよいのです。パッケージ名を決める際には、他に誰も使っていないパッケージ名にするために、インターネットのドメイン名を逆順にしたものを利用するのが一般的です。始まるパッケージ名を使用します。この慣例に従っていれば、パッケージ名が衝突する可能性はまずありません。一つだけ守らなければならないルールがあります。パッケージを利用したクラスファイルは、パッケージ名と同じ名前のフォルダに置かれなければならない。Javaのクラス名とファイル名を同じ名前にしなければならないのに似ていますね。いう名前のフォルダに置かなくてはいけません。いう名前のフォルダを作成して、パッケージの階層とフォルダの階層をあわせておく必要があります。置かれているフォルダにクラスパスを通しておく必要があります。そんなに難しいことはありません。このようにパッケージ階層とフォルダ階層をあわせておくことで、ソースファイルそのものもフォルダに分けて管理することができるので、あとあと整理しやすいのです。4.パッケージの実例では、実際にパッケージを利用してみることにしましょう。3つのクラスを作成してください。}}各ソースファイルは先ほど説明したルールに従ったフォルダに保存します。MyMain.javaはいつものフォルダ(C:\work)に、MyAp.javaはmypackageパッケージのクラスなのでmypackageというフォルダに保存します。いう名前のフォルダを作成してそこに保存します。+-SubAp.javaソースファイルの準備ができたらコンパイルしてみましょう。ソースファイルが複数のフォルダにある場合には、mainを含むプログラムをコンパイルする、もしくは、以下のようにしてそれぞれのフォルダでコンパイルする必要があります。MyMain.javaC:\work&gt;コンパイルできましたか?以下のように、それぞれのフォルダにクラスファイルができていればOKです。+-SubAp.classそれでは、実行してみましょう。クラスのmainメソッドの中を見てみましょう。クラスをnewするときは、通常同じパッケージの中から探します。MyApクラスはMyMainクラスとは異なるパッケージ(つまり同じフォルダにはない)なのでimportする必要があります。見つけることができるのです。クラスを使用することをJavaに教えているのです。mypackage.sub.*;と記述する事もできます。〜1.「パッケージとは何か」がイメージできた2.パッケージを使用する事により、クラスを整理できる事がわかった3.パッケージ名とフォルダ名をあわせる必要がある事がわかった4.パッケージは階層に作成できる事がわかったさて、今回の講義はここまでです。面倒(そう)なことは増えますが、パッケージはある程度以上の大きさのプログラムを作るときには、非常に有効な手段です。皆さんもパッケージを活用して、見通しの良いクラス構成を心がけていきましょう。次へ(第14回:例外に対処する)アンケート読者の皆さん、Java講座はお役に立っていますか?今後の改良の為、以下のアンケートに是非お答えください。※個人情報の取り扱いについてはAcroquestでの個人情報保護に関する基本方針をご覧下さい。(→当社の技術書紹介をご参照ください)3)ご感想を是非お寄せ下さい。ご記入いただいた『質問内容』を、匿名にてホームページ上に掲載させて頂くことがありますのでご了承ください。