JavaA2Z

KAB-studio > プログラミング > JavaA2Z > packageとは

package

日本語 梱包
英語 package
ふりがな ぱっけーじ
フリガナ パッケージ

解説

クラスパッケージ名を指定するための予約語
ソースファイルの最初ので「package パッケージ名;」という形式でパッケージ名を付けることができる。
この記述をうことで、ソースファイル内のクラスは「パッケージ名.クラス名」というクラス名になる。
また、この記述を「パッケージ宣言」と言う。
 
クラスパッケージ毎に分ける場合、まずソースファイルの置いてあるディレクトリを確認する。
ソースファイルの置いてあるディレクトリ」とは、コンパイルするソースファイルを置いてあるディレクトリのことで、通常、プロジェクトディレクトリ下に「src」というディレクトリ名で作られている。具体的には、Eclipseであれば、各プロジェクトプロパティの「Javaビルドパス」ページの「ソース」タブで表示されているディレクトリがそれである。
この「ソースファイルの置いてあるディレクトリ」にさらにディレクトリを作り、その中にソースファイルを置く。
そのソースファイルは、importによるインポート宣言の前に「package パッケージ名;」という形式でパッケージ名を指定する。
パッケージ名は「ソースファイルの置いてあるディレクトリ」からの相対ディレクトリを「.」で継ないだものである。たとえば「ソースファイルの置いてあるディレクトリ」が「project/src/」であれば、「project/src/test/test2/OtherPackageClass.javaクラスパッケージ名は「package test.test2;」となる。
以上のようにすることで、このクラスは「パッケージ名パッケージで囲まれる。
OtherPackageClassクラスの例で言えば「test.test2」というパッケージ名が付いた「test.test2.OtherPackageClass」がクラス完全修飾名となる。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
/*
    「ソースファイルを置いてあるディレクトリ」直下の場合、
    パッケージを指定する必要はありません。
    だから、このソースファイルには「package」がありません。
*/
// test.test2パッケージ内のOtherPackageClassクラスを使用します。
import test.test2.OtherPackageClass;

public class Sample
{
    public static void main( String[] args )
    {
        // OtherPackageClassクラスを使用します。
        // importしてあるのでそのまま使えます。
        OtherPackageClass otherPackageClass = new OtherPackageClass();
        otherPackageClass.output();
        // OtherPackageClass#output()

        // importしてない場合には以下のようにパッケージ名を
        // 省略せずに使用します。
        test.test2.OtherPackageClass otherPackageClass2 = new test.test2.OtherPackageClass();
        otherPackageClass2.output();
        // OtherPackageClass#output()
    }
}


// test/test2/OtherPackageClass.java
/**
    つまり、このファイルはtest/test2ディレクトリの中にあります。
    Sample.javaはtestディレクトリと同階層にあります。
    位置関係はこんな感じ。

    project/src/Sample.java
    project/src/test/test2/OtherPackageClass.java
*/
package test.test2;
//      ↑test/test2ディレクトリに置いてあるので「test.test2」です。

// パッケージ名がディレクトリ構成と異なる場合、
// コンパイルエラーになります。
// package test;
// コンパイルエラー:
// 宣言されたパッケージは、予期されるパッケージ test.test2 に一致しません。

/**
*   test.test2パッケージ内のクラス。
*/
public class OtherPackageClass
{
    /**
    *   出力します。
    */
    public void output()
    {
        System.out.println( "OtherPackageClass#output()" );
    }
}

// クラスの宣言の下には置けません。
// package test.test2;
// コンパイルエラー:
// キーワード "package" に構文エラーがあります。正しくは "interface", "class" です。
// Sample.java
/*
    「ソースファイルを置いてあるディレクトリ」直下の場合、
    パッケージを指定する必要はありません。
    だから、このソースファイルには「package」がありません。
*/
// test.test2パッケージ内のOtherPackageClassクラスを使用します。
import test.test2.OtherPackageClass;

public class Sample
{
    public static void main( String[] args )
    {
        // OtherPackageClassクラスを使用します。
        // importしてあるのでそのまま使えます。
        OtherPackageClass otherPackageClass = new OtherPackageClass();
        otherPackageClass.output();
        // OtherPackageClass#output()

        // importしてない場合には以下のようにパッケージ名を
        // 省略せずに使用します。
        test.test2.OtherPackageClass otherPackageClass2 = new test.test2.OtherPackageClass();
        otherPackageClass2.output();
        // OtherPackageClass#output()
    }
}


// test/test2/OtherPackageClass.java
/**
    つまり、このファイルはtest/test2ディレクトリの中にあります。
    Sample.javaはtestディレクトリと同階層にあります。
    位置関係はこんな感じ。

    project/src/Sample.java
    project/src/test/test2/OtherPackageClass.java
*/
package test.test2;
//      ↑test/test2ディレクトリに置いてあるので「test.test2」です。

// パッケージ名がディレクトリ構成と異なる場合、
// コンパイルエラーになります。
// package test;
// コンパイルエラー:
// 宣言されたパッケージは、予期されるパッケージ test.test2 に一致しません。

/**
*   test.test2パッケージ内のクラス。
*/
public class OtherPackageClass
{
    /**
    *   出力します。
    */
    public void output()
    {
        System.out.println( "OtherPackageClass#output()" );
    }
}

// クラスの宣言の下には置けません。
// package test.test2;
// コンパイルエラー:
// キーワード "package" に構文エラーがあります。正しくは "interface", "class" です。

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/01/13
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。