29

次のコードを含む Main.java という名前のファイルがあるとします。

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

特定のパッケージ、(おそらく?) 名前のないパッケージに入れられますか?

ありがとう

4

3 に答える 3

32

名前付きパッケージに含まれていないクラスは、名前なしパッケージに含まれています。したがって、完全なクラス名はMain.

このようなクラスは、リフレクションを介する場合を除いて、名前付きパッケージから使用できません。

JLS は次のように述べています。

名前のないパッケージは、主に小規模または一時的なアプリケーションを開発するとき、または開発を開始するときの利便性のために、Java SE プラットフォームによって提供されます。

于 2010-02-25T15:35:40.327 に答える
9

Java には名前空間がなく、パッケージがあります。そうです、パッケージ宣言のないクラスは暗黙のうちに「名前のないパッケージ」の一部であり、しばしば「デフォルト パッケージ」とも呼ばれます。ただし、名前のないパッケージからクラスをインポートすることは不可能であり、言語仕様では、名前のないパッケージ内のクラスが互いに見えるかどうか、およびどのように見えるかについて、実装が異なるルールを持つことを明示的に許可しているため、通常、すべてのクラスを名前付きに配置することをお勧めします。実験的なコードを除くパッケージ。

于 2010-02-25T15:40:48.927 に答える
4

JLSによると、次のように呼ばれています。

7.4.2 名前のないパッケージ

パッケージ宣言のないコンパイル ユニットは、名前のないパッケージの一部です。

于 2010-02-25T15:40:52.733 に答える