サーチ…


前書き

javaのパッケージは、クラスとインタフェースをグループ化するために使用されます。膨大な数のクラスがある場合、これにより開発者は競合を避けることができます。このパッケージを使用すると、異なるパッケージに同じ名前のクラス/インタフェースを作成できます。パッケージを使用することで、もう1つのクラスでそのピースをインポートすることができます。 > 1.java.util> 2.java.lang> 3.java.ioのようなjavaには、多くのパッケージ組み込ま れています 。独自のユーザー定義パッケージを定義できます

備考

パッケージはアクセス保護を提供します。

package文は、ソースコードの1行目でなければなりません。 1つのソースファイルには1つのパッケージしか存在しません。

パッケージの助けを借りて、異なるモジュール間の競合を回避することができます。

パッケージを使用して同じ名前のクラスを作成する

最初のTest.class:

package foo.bar

public class Test {

}

別のパッケージのTest.class

package foo.bar.baz

public class Test {

}

2つのクラスが異なるパッケージに存在するため、上記はうまくいきます。

パッケージ保護範囲の使用

Javaでは、アクセス修飾子を指定しないと、変数のデフォルトスコープはパッケージ保護レベルになります。つまり、これらの変数が公に利用可能であるかのように、クラスが同じパッケージ内の他のクラスの変数にアクセスすることができます。

package foo.bar

public class ExampleClass {
    double exampleNumber;
    String exampleString;

    public ExampleClass() {
        exampleNumber = 3;
        exampleString = "Test String";
    }
    //No getters or setters
}

package foo.bar

public class AnotherClass {
    ExampleClass clazz = new ExampleClass();

    System.out.println("Example Number: " + clazz.exampleNumber);
    //Prints Example Number: 3
    System.out.println("Example String: " + clazz.exampleString);
    //Prints Example String: Test String
}

このメソッドは、別のパッケージのクラスでは機能しません。

package baz.foo

public class ThisShouldNotWork {
    ExampleClass clazz = new ExampleClass();

    System.out.println("Example Number: " + clazz.exampleNumber);
    //Throws an exception
    System.out.println("Example String: " + clazz.exampleString);
    //Throws an exception
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow