パッケージ_(Java)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > パッケージ_(Java)の意味・解説 

パッケージ (Java)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/03 20:12 UTC 版)

JavaパッケージJava package)は名前空間の中にあるJavaクラスをまとめるメカニズムである。Javaパッケージは、JARファイルと呼ばれる圧縮ファイルの中に保存することができる。同じパッケージに属するクラス群を1つのグループとしてまとめたほうが、Javaクラスファイルを1つずつダウンロードするよりも高速化される。プログラマも一般に同じカテゴリに属しているクラスや類似した機能を提供するクラスをまとめたパッケージを使う。

Javaソースファイルは先頭に、そのソースファイル内で定義されるクラスが属するパッケージを指定するpackageを含むことができる。

特に、他の型の中に定義がネストされておらず、パッケージの直下に属するクラスやインタフェースを「トップレベルクラス」や「トップレベルインタフェース」と呼ぶ[1][2]。トップレベルの型は、その型がpublicと宣言されている場合にのみ、その型を含むパッケージの外部からアクセスできる[3]

役割としてはC++C#などの言語に使われている名前空間: namespace)に似ているが、その名前空間よりも機能は限定的であり、階層構造の概念はあるもののブロック構文を持たず、主に型名の衝突を避けるために存在する。またそのパッケージ内にある型は、アクセスレベル修飾子(access level modifiers)をデフォルトの無指定にすることでpackage-private設定[4]となり、package-privateな型はパッケージ外部の型からのアクセスが禁止され、カプセル化による情報隠蔽を実現できる。これによりGoFデザインパターンの一つ、Facade パターンをより忠実に実現することができる。

パッケージの使用

Javaソースファイルでは、ファイルが所有する(ファイル内に書かれている)クラスまたはクラス群が属しているパッケージが、packageキーワードを使って指定される。

package java.awt.event;

あるパッケージが所有するクラスをJavaソースファイル内で使うには、import宣言でパッケージからクラスをインポートするのが便利である。次の宣言はjava.awt.eventパッケージからすべてのクラスをインポートする。

import java.awt.event.*;

一方、次の宣言はパッケージからActionEventクラスだけをインポートする。

import java.awt.event.ActionEvent;

これらのimport宣言の後ではいずれも、以下のように単純クラス名を使ってActionEventクラスを参照することができる。

ActionEvent myEvent = new ActionEvent();

クラスの完全修飾名(fully qualified name)を使うことで、import宣言なしでクラスを直接使うことができる。例えば、以下は先行するimport宣言を要求しない。

java.awt.event.ActionEvent myEvent = new java.awt.event.ActionEvent();

パッケージアクセス保護

あるパッケージ内のクラスは、protectedアクセス修飾子を使って宣言されたクラスメンバーにアクセスできるのと同様に、「デフォルト」すなわちアクセス修飾子を無指定で宣言されたpackage-privateのクラスやメンバーにアクセスできる。クラスやメンバーがpublicprotectedprivateとして宣言されていないとき、デフォルト(package-private)アクセスが強制される。それとは対照的に、他のパッケージ内にあるクラスはデフォルトアクセス宣言されたクラスやメンバーにアクセスできない。protected宣言されたクラスメンバーは、そのクラスのサブクラスである他のパッケージ内クラスからアクセスできるのと同様に、同じパッケージ内の(継承関係のない)クラスからもアクセスすることができる[4]

JARファイル生成

JARファイルはjarコマンドラインユーティリティによって生成される。次のコマンドは拡張子.classを持つすべてのファイルをJARファイルmyPackage.jarに圧縮する。

jar cf myPackage.jar *.class

コマンドラインオプション'c'はjarコマンドに「アーカイブの新規作成」を指示する。'f'オプションはファイルの作成を指示する。ファイル名はその次に来て、JARファイルのコンテンツ(内容物)の前に指定される。

パッケージ命名規約

パッケージは通常、ピリオド(.) (「ドット」と発音)によって分割された階層レベルで階層命名パターンを使用する。名前階層が下位であるパッケージはしばしば上位層に相当するパッケージの「サブパッケージ」と呼ばれるが、パッケージ間には意味的な関係は無い。Java Language Specification は二つの公開されたパッケージが同じ名前を持つことを避けるためにパッケージ命名規約を設けている。命名規約がユニークなパッケージ名を作成する方法を説明するように、広く配布されたパッケージはユニークな名前空間を持つだろう。これはパッケージ群が簡単で無意識的にインストールされカタログ化されるようにしている。

パッケージ名は組織のトップレベルドメイン名と、そのときの組織のドメインといくつかのサブドメインリストが逆順になったもので始まることが推奨されている。組織はそれらの名前にそのときに特定の名前を選ぶ。パッケージ名は可能ならばすべて小文字にすべきである。

例えば、もしカナダにMySoftと呼ばれる組織がfraction(小数、分数)を扱うパッケージを作るとすると、パッケージをca.mysoft.fractionsとネーミングすることは、他社によって開発された類似するもうひとつのパッケージからfractionパッケージを見分ける。もしMySoftと呼ばれるアメリカの企業もまたfractionパッケージを作るとするが、名前はcom.mysoft.fractionsであり、そのとき、それら二つのパッケージにあるクラスはユニークに定義され、名前空間は分割される。

曖昧でないパッケージ名に関して完全な規約と、パッケージ名に直接使うことができないインターネットドメイン名をパッケージに命名するルールは、Java言語仕様のChapter 6.1で説明されている。

ハイフン(-)が使われているドメイン名をそのままJavaソースコードで使用するとコンパイルエラーを引き起こす。そのためハイフンが使われているドメイン名には、ハイフンの代わりにアンダースコア (_)を使用する。

Java SE 5 から追加されたアノテーション

Java SE 5から追加されたアノテーションは、パッケージも対象にすることができる。 パッケージにアノテーションを保存するには、該当するパッケージディレクトリにpackage-info.javaというファイルを作り、以下のように記述する。

 /**
  * パッケージの説明。
  * パッケージのコメントにはJavadocのタグがそのまま使える。
  */
 @Deprecated package com.example.wikipedia;

この例は、パッケージcom.example.wikipediaを非推奨にしていることを意味する。このpackage-info.javaはJavaコンパイラに警告を表示させる以外に、Javadocにパッケージの説明を表示するドキュメントを生成させるためにも利用される。package-info.javaは、パッケージにアノテーションを付加するために作られ、従来のpackage.htmlの代替となるものである。

Java SE 6のコアパッケージ

java.lang — 基本言語機能性と基本型basic language functionality and fundamental types
java.util — コレクションデータ構造クラス
java.io — 入出力操作
java.math — 多倍長演算
java.nio — JavaによるNew I/Oフレームワーク
java.net — ネットワーク命令、ソケット、DNSルックアップ...
java.security — 暗号鍵生成、暗号化、復号
java.sql — データベースにアクセスするためのJava Database Connectivity (JDBC)
java.awt — ネイティブGUIコンポーネントのパッケージの基本階層
javax.swing — プラットフォーム非依存リッチGUIコンポーネントのパッケージ階層

脚注

出典

関連項目

外部リンク


「パッケージ (Java)」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「パッケージ_(Java)」の関連用語

パッケージ_(Java)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



パッケージ_(Java)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのパッケージ (Java) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS