如果我没有指定它,我的类的默认包是什么?

时间:2010-02-25 15:33:14

标签: java package default-package

假设我有一个名为Main.java的文件,其代码如下:

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

它是否放在一个特定的包中,(可能是?)一个未命名的包?

由于

3 个答案:

答案 0 :(得分:25)

不在命名包中的类位于 unnamed package 中。因此,完整的班级名称为Main

除了反射之外,这些类不能来自命名包中的used

JLS说:

  

Java SE平台提供了未命名的软件包,主要是为了方便开发小型或临时应用程序或刚开始开发时。

答案 1 :(得分:5)

Java没有名称空间,它有包。是的,没有包声明的类隐含地是“unnamed package”的一部分,通常也称为“默认包”。但是,由于无法从未命名的包中导入类,并且由于语言规范明确允许实现对于未命名包中的类是否以及如何彼此可见具有不同的规则,因此将所有类放入命名通常是个好主意。除实验代码外的包。

答案 2 :(得分:4)

根据JLS所谓:

  

7.4.2未命名的包

     

没有包声明的编译单元是未命名包的一部分。