パッケージ (Java)
Javaパッケージ(Java package)は名前空間の中にあるJavaクラスをまとめるメカニズムである。Javaパッケージは、JARファイルと呼ばれる圧縮ファイルの中に保存することができ、クラス群を一つのグループとしてまとめた方が1つずつダウンロードするよりも高速化される。プログラマも一般に同じカテゴリに属しているクラスや類似した機能を提供するクラスをまとめたパッケージを使う。
Javaソースファイルはファイルの先頭にソースファイルが定義したクラスのパッケージを明示するpackage構文を含むことができる。
パッケージはそれが含むタイプに関してユニークな名前空間を提供する。
同じパッケージにあるクラス群はお互いに保護された(protected)メンバにアクセスできる。
パッケージは次に述べる種類の型を含むことができる。 クラス インタフェース 列挙型 アノテーション
C++などの言語に使われているnamespace (名前空間)に似ているが、その名前空間よりも機能は限定的であり、階層構造を持たず、クラス名の衝突を避けるために存在する。またそのパッケージ内にあるクラスに対しては、package privateといった設定が可能であり、package privateなクラスはパッケージ外部のクラスからのアクセスが禁止され、カプセル化による情報隠蔽を実現できる。これによりGoFデザインパターンの一つ、Facade パターンをより忠実に実現することができる。