パッケージとは
Java のパッケージは、関連するクラスやインタフェースを整理するための構造です。 例えば、作成した文章ファイルなどを保存する場合、ディレクトリごとにまとめて保存すると思います。このディレクトリ構造にあたる部分がパッケージと理解していただければイメージしやすいでしょう。
│
├ ■研修資料
│
├ 新人研修.pptx
│ └ 社内研修.pptx
│ ├ ■設計書
│ ├ 画面設計書.xlsx
│ └ ファイル設計書.xlsx
│ └ ■報告書
├ 2020-04-05_日報.docx
├ 2020-04-06_日報.docx
└ 2020-04-07_日報.docx
具体的には開発者が開発していくうえで、機能ごとにディレクトリを整理していくことになります。 Javaには同じクラスが存在しますが、パッケージを分けることで全く異なる機能を意味します。
パッケージを使用する理由
Javaでのパッケージを使用する理由として以下の3つ利点として挙げられます。
同じ役割を持つクラス・インタフェースを同じパッケージにまとめる。
同じ機能や役割を持つクラスを同じパッケーとして管理することで、どのパッケージにどのような役割、機能を持つクラスが存在するかをおおよその感覚で認識することができます。
同じ名前を持つクラス・インタフェースが複数ある場合、名前の衝突を避ける。
例えばDateクラスは、パッケージとしては「java.sql」、「java.util」が存在します。 ・java.sql.Date ・java.util.Date クラス名は同じですが、パッケージを分けることで同じ名前として管理することが可能です。
クラス・メンバ変数・メソッド・コンストラクタにアクセス制限をつけること可能となる。
パッケージを使用することで各クラスやメンバ変数、メソッド、コンストラクタにアクセスできる制限をかけることが可能となります。 アクセス制限については別回で詳しく説明します。
Eclipseからパッケージを作成する。
Eclipseからパッケージを作成する場合、[ファイル]メニューから[新規]→[パッケージ]を選択します。
試しに”test”というパッケージを作成してみましょう。 名前に”test”と入力し、[完了]ボタンをクリックします。
“test”というパッケージが作成されました。
パッケージの使用例
パッケージは上記で説明した通り、クラスを整理するための構造を意味します。 実際の記述例を見ていきましょう。
パッケージ階層が1階層の場合
パッケージが1階層の場合、単純にパッケージ名を記述します。 パッケージ名はすべて小文字で記載することが一般的です。 sampleprojectディレクトリ配下にクラス(SampleClass004)を定義する場合 記述例:package sample;
パッケージ階層が2階層以上の場合
パッケージ階層が2階層以上の場合、階層と階層のあいだを.(ドット)でつなぎます。
sampleprojectディレクトリ配下のlessonディレクトリ配下にクラス(SampleClass004_1)を定義する場合 記述例:package sampleproject.lesson;
いかがだったでしょうか?今回はパッケージの役割、使用例について説明しました。 次回はクラスについて説明します。