パッケージとは?
状態:-
閲覧数:2,109
投稿日:2013-12-18
更新日:2018-07-27
表記
英語
・package
Javaの名前空間
クラスひとつひとつに付ける名前空間のこと
・クラスごとに名前空間が違っても良いが、大抵はライブラリや機能単位に名前を割り当てる
クラス名の衝突をさける為のもの
・クラス名の衝突を避けることができる
・パッケージが異なると「同じ名前のクラス」でも「別のクラス」として扱われる
たくさんあるJavaのクラスを分類するための仕組み
・複数のソースファイルをディレクトリごとにまとめる機能
・パッケージはディレクトリ階層によって管理される
ルール / パッケージ名について / 標準パッケージ
ルール
パッケージ
・ディレクトリ階層によって管理される
パッケージを利用したクラスファイル
・パッケージ名と同じ名前のディレクトリに配置する必要がある
パッケージ名について
作者の保有するドイメン名に適当なサブドメイン名を繋げてパッケージ名とすることが多い
・外部に公表しないのであれば何でも良い
標準パッケージ
Java に元から用意されているパッケージ
・標準(JDK)クラスライブラリの主なパッケージ
パッケージ名 | 内容 |
---|---|
java.lang | 言語に関するクラス |
java.io | 入出力に関するクラス |
java.util | ユーティリティに関するクラス |
java.security | セキュリティに関するクラス |
java.text | 数値や日付などの国際化に関するクラス |
java.awt | AWT(Abstract Windowing Tools)に関するクラス |
java.applet | アプレットに関するクラス |
java.beans | JavaBeansに関するクラス |
java.math | 数値の演算に関するクラス |
java.net | ネットワークに関するクラス |
java.rmi | RMI(Remote Method Invocation)に関するクラス |
java.sql | データソースへのアクセスに関するクラス |
java.accessibility | ユーザー補助機能に関するクラス |
java.naming | 名前検索サービスに関するクラス |
java.sound | サウンドに関するクラス |
java.swing | Swingに関するクラス |
「クラス」が「パッケージ」に属することを宣言
「クラスA」が「パッケージp」に属することを宣言
「A.javaファイル」の先頭に「package p;」と記述する
▼A.java
package p;
class A{
}
同一パッケージに属するクラスを使用するには?
異なるパッケージに属するクラスを使用するには?
方法1.import文を使用してpパッケージを使用することを宣言
▼B.java
import p.*;
class B extends A{
}
方法2.import文を使用してpパッケージのAクラスを使用することを宣言
▼B.java
import p.A;
class B extends A{
}
方法3.import文を使用せず完全修飾名でpパッケージのAクラスを指定
▼B.java
class B extends p.A{
}
・JAVAで他ライブラリのクラスを継承するには、jarを含め、import
異なるライブラリでパッケージ名が重複した場合、クラスロード順で先に読み込まれた方が実行(参照)される
読み込んだJARにパッケージ重複やファイル名重複があった場合
コンパイルエラーにはならない
・クラスロード順で先に読み込まれた方が実行(参照)される
・ファイル名に重複がなければ問題なくファイル特定して実行(参照)できる
・パッケージが重複した時の挙動まとめ