魔術師見習いのノート

プロフィール

魔術師見習い
Author魔術師見習い-_-.
Twitter魔術師見習い

コンピュータ関係のメモを主に書きます.

MENU

UML2.4(6) -パッケージ図-

投稿日:
修正日:
タグ:

パッケージ図

パッケージ図は、パッケージとパッケージ間の関係を表現するダイアグラムである。

名称意味
パッケージ
パッケージ
さまざまなダイアグラムをグループ化するための要素のことであり、名前空間の管理も行う。パッケージ内の各要素の関係は、クラス図やコンポジット構造図のような他のダイアグラムで表現でき、パッケージ間の関係はインポートやマージで表現できる。
パッケージ
要素
インポート 別のパッケージに含まれている要素(クラスやインタフェースなど)を読み込むことを表す。矢印がA⇢BならばパッケージAがパッケージBを読み込んでいることを示す。
マージ 既存のパッケージを利用して別のパッケージを新規に作成することを表す。マージとインポートの違いはパッケージ間で名前の衝突が発生した時の解決方法である。
インポート
インポートするパッケージに元々あった要素が隠される。
マージ
両方のクラスの特徴を持つクラスが生成される。

次のようなパッケージ図があるとする。この時、パッケージP0でクラスAの操作opAという定義があり、かつそれをインポートしたパッケージP1でクラスAの操作Bを定義した場合、パッケージP0のクラスAは隠蔽され、P3で利用するクラスAは操作opBしかない。もしパッケージP0をマージしたパッケージP2でクラスAの操作Bを定義した場合、それをインポートしたパッケージP4では操作opAと操作opBの2つの機能を持つクラスとなる。


Javaのパッケージ

Javaでは、パッケージのインポートをimport文を用いて行う。パッケージの生成とimportは次のように行う。

./pkgtest/Hoge.java
パッケージを生成し、そのパッケージにファイル内で定義したクラスやインタフェースを追加する場合、package文を使用する。package文は必ずJavaの本文を記述する前に記述しなければならない。Javaでは,package文を省略した場合は無名パッケージとして扱われる。すなわちJavaのクラスは必ずいずれかのパッケージに属する。
package pkgtest; // 登録

/**
 * クラスHogeの説明
 * @author 魔術師見習い
 */
public class Hoge {
 /**
  * 加算関数
  * @param addee 被加数
  * @param adder 加数
  * @return 加算結果
  */
  public int add(int addee, int adder){
    return addee + adder;
  }
}
./pkgtest/package-info.java
javadocを使用する場合、パッケージの説明はpackage-info.javaというファイルに記述する。
/**
 * パッケージpkgtestの説明
 * 
 */
package pkgtest;
./Fuga.java
パッケージは次のようにimport文を使用して行う。
import pkgtest.Hoge;

public class Fuga {
  public static void main(String args[]){
    Hoge h = new Hoge();
    System.out.println(h.add(1, 3));
  }
}

一覧