【本サイトではGoogleアドセンス、または、アフィリエイト広告を利用しています。】
パッケージとは?
パッケージとは、プログラムの書かれたソースファイルをまとめる範囲のことです。
パソコンのファイルも、写真や動画、ドキュメントなど、
ファイル種別にあわせてフォルダ分けしますが、それと考え方は同じです。
もっと言えば、パッケージは、服を整理する時に使う段ボール箱です。
パッケージを使うことで、プログラムファイルを
カテゴリ別に整理して管理することができるようになります。
また、プログラムファイルを入れるパッケージを分けることで、
同一プロジェクト内に同じ名前のクラスを作成できるようになります。
デフォルト・パッケージとは?
デフォルト・パッケージとは、名前のないパッケージのことです。
以下のように、パッケージを指定せずにクラスを作成
(Javaのプログラムファイルを作成)すると、

所属不明なクラスとして、自動的にデフォルト・パッケージに分類されます。

また、eclipseではパッケージを空欄にすると、作成時に非推奨である警告が出ます。
それは、所属不明なクラスだけあって、
パッケージに所属するクラスとは扱いが区別されてしまうからです。
デフォルト・パッケージにあるクラスは、
パッケージに所属しているクラスからは呼び出すことができないという特徴を持ちます。
パッケージの名前がないので、指定して呼び出せないと考えると当然な扱いです。
つまり、デフォルト・パッケージにあるクラスは、
同じデフォルト・パッケージにあるクラスからしか呼び出せないということになります。
プロジェクト全体から見ると、浮いたクラスになるので、
そういったものは品質上存在すること自体が好ましくありません。
デフォルト・パッケージを使う必要性はほぼないと言っても良いので、
クラスを作成する時は、きちんとパッケージを指定するようにしましょう!
パッケージを作成する方法
では、eclipseでパッケージを作成してみましょう。
① 画面上部のメニュー「ファイル」を選択。
② 「新規」を選択。
③ 「パッケージ」を選択。

メニューを選択すると子画面が出てきます。
① 「名前」欄にパッケージ名を入力。
② 「完了」ボタンをクリック。

作成が完了すると、パッケージ・エクスプローラー上にパッケージが表示されます。

まだクラスが入っていないので空の状態です。
クラスをパッケージに移動する方法
クラスをパッケージ内に移動させるには、
対象のJavaファイルをドラッグ&ドロップするだけです。
先ほどデフォルト・パッケージの例で作成したファイルで試してみましょう。

eclipse上のマウス操作だけで、
exampleパッケージにExampleクラスの入ったJavaファイルが移動しました。

移動したプログラムファイルをよく見てみると、
ファイルを移動したタイミングでプログラムの先頭に以下の1行が追加されています。
package example;
これは、Javaファイルが所属するパッケージを宣言したものです。
例では、パッケージ名が「example」なので、上記のようなコードになります。
Javaでは、パッケージに所属している場合、この記載がないとエラーになります。
ということで、パッケージに移動した時は、
本来自分でこのコードを書き加えないといけないのですが、
ドラッグ&ドロップしたタイミングで、
eclipseが自動的にプログラムを付加してくれているのです!便利です!
別のパッケージにあるクラスを使う方法
以下のようなExampleクラスがexampleパッケージにあるとします。
ここで、Exampleクラスに定義されているRobotクラスを取り出して、
別のファイルとして定義してみようと思います。
package example;
// クラス:メイン処理実行用
public class Example {
// メイン処理
public static void main(String[] args) {
// おはようロボ作成
Robot robo = new Robot();
// あいさつ
robo.goodMorning();
}
}
// クラス:おはようロボ
class Robot {
// メソッド:あいさつ
public void goodMorning() {
System.out.println("おはようございまス!");
}
}
まずは、robotパッケージとRobotクラスを新たに作成して、
ExampleクラスにあるRobotクラスのソースを移動させてみます。

実行しようとすると、以下のようなエラーが出ました。

これは、要するに、「Robot型なんて存在しないんですけど、何言ってるの?」
ということです。exampleパッケージにRobotクラスは存在しないので、
ExampleクラスはRobotクラスの存在が見えていないのです。
ということで、各クラスを以下のように書き換えてみましょう!
package example;
import robot.Robot;
// クラス:メイン処理実行用
public class Example {
// メイン処理
public static void main(String[] args) {
// おはようロボ作成
Robot robo = new Robot();
// あいさつ
robo.goodMorning();
}
}
package robot;
//クラス:おはようロボ
public class Robot {
// メソッド:あいさつ
public void goodMorning() {
System.out.println("おはようございまス!");
}
}
すると、Robotクラスの存在が認識されて、無事にコードが実行されました!
おはようございまス!
ここで注目すべきところはExampleクラスの3行目です。
import robot.Robot;
この宣言をすることでExampleクラスからRobotクラスを参照できるようになります。
このように、別のパッケージにある別のクラスは、
「import」で定義することで参照できるようになります。
まとめ
Javaのパッケージの使い方について以下説明しました。
- パッケージについて
- デフォルト・パッケージについて
- パッケージの作成方法
- クラスをパッケージの中に移動する方法
- 別のパッケージにあるクラスを参照する方法
システム開発など、大きなプログラムを扱う際に
パッケージは必須になってくるものなので、
今回の内容を参考に、自分でいろいろ試しながら、
パッケージの特徴や使い方をよく理解しておきましょう!