Javaパッケージ(Package)

パッケージ概要

クラスを分類し、利用しやすくするために、関連するクラスとインターフェースを一つにまとめることができます。これを**パッケージ(package)**と呼びます。つまり、パッケージは似た種類のクラスやインターフェースを一つの集団にまとめたものです。

  • クラスを一つにまとめたものです。
  • クラス間の名前重複によって発生する衝突を防ぎます。
  • クラスを機能別に分類できるため、必要なクラスを識別しやすくなります。

パッケージは名前付けとアクセス制御に関する仕組みです。パッケージ内部には、そのパッケージの外部にあるコードからアクセスできないクラスを作成することもできます。また、同じパッケージの他のメンバーからアクセスできるクラスメンバーを構成することもできます。

パッケージ名は、ドメイン名を逆順にして構成するのが一般的です。多くの開発者によってJavaクラスやインターフェースが作成され、それらはパッケージに分類されて多くの人に利用されています。パッケージ名を自由に決めてしまうと、同じ名前のパッケージが重複して混乱を招く可能性があります。そのため、通常は会社や団体が作ったパッケージをcom.devkuma.tutorialのような形式で記述し、パッケージ名の重複をできるだけ減らします。

パッケージ定義

パッケージはソースの最上部に置かれます。慣例的にパッケージ名はすべて小文字で書かれ、パスや単位はドット(.)で区切られます。

package パッケージ名[.パッケージ名[.パッケージ名]...];

class クラス名 { ...
package com.devkuma.tutorial;

class HelloWorld { ...

パッケージがあるオブジェクトの宣言と生成

パッケージがあるオブジェクトを使用するには、パッケージ名を記入する必要があります。どのパッケージに属しているどのクラスなのかをすべて記入してこそ明確になるためです。

そのため、次のような形式でオブジェクトを宣言および生成できます。

パッケージ名[.パッケージ名[.パッケージ名]...].クラス名 オブジェクト変数名 = new パッケージ名[.パッケージ名[.パッケージ名]...].クラス名();

下のコードを見ると、HelloWorldオブジェクトはcom.devkuma.tutorialに属しているため、com.devkuma.tutorial.HelloWorldでオブジェクト変数を宣言し、com.devkuma.tutorial.HelloWorldコンストラクタを呼び出してオブジェクトを生成しています。

com.devkuma.tutorial.HelloWorld helloWorld = new com.devkuma.tutorial.HelloWorld();