パッケージとは

パッケージとは一言で表すと「クラスを整理するための入れ物」みたいなものです。

日常生活でイメージするならモノを収納する箱がイメージしやすいでしょう。例えば、あなたが洋服・食器・おもちゃを持っているとして、それらを整理整頓するならどう整理しますか?
ある人は1つの箱を用意してそこに全部入れるかもしれません。ある人は関連性のあるモノ同士で箱を分けて収納するかもしれません。

クラスも同じで適当に一つのパッケージにまとめることもできるし、関連性のあるクラスを1つのパッケージにまとめることもできます。
当然、関連性のあるモノ同士でパッケージを分けるのが好ましいです。
先ほどの例に戻ると、洋服・食器・おもちゃが一つの大きな箱に収納されていたら、自分の欲しいモノを探すのって大変ですよね。
クラスも同じで適当にパッケージまとめられていたら、目的のクラスを探すのがとても大変になります。

実際にJavaでパッケージはどう宣言するのか

パッケージ宣言は下記のように行います。

package com.example.toy;

public class Main{

  public static void main (String[] args) {
    System.out.print("Hello World");
  }
}


パッケージ宣言をするとき守らないといけないルールは下記です。

  • クラスの最上位に宣言する
  • 「 package パッケージ名 ; 」 の形式で宣言する

パッケージ宣言の疑問

ここでいくつか疑問が生まれるかもしれません。

  1. なぜ最上位で宣言するの?
  2. セミコロン(;)じゃなくて中カッコで宣言してはだめなの?

それぞれ下記の理由が考えられます。

  1. 最上位で宣言することでそのクラス全体が対象のパッケージに含まれていることを表現できる
  2. 中カッコを使う形だとクラス内でパッケージスコープ(ここからここまでがパッケージに含まれるよーってこと)を宣言できることになり、プログラムの構造を複雑にしてしまう

パッケージの役割や利点

パッケージには下記の役割や利点があります。

  • クラス名の重複を避けることができる
  • パッケージ内のクラスを公開するものと非公開にするもので分けられる
  • ディレクトリとマッピングさせるためクラスの分類が容易になる