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

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

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

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

谢谢

不在命名包中的类位于未命名的包中 。 因此,完整的类名是Main

除了通过reflection之外,不能从命名包中使用这些类。

JLS说:

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

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

根据JLS,它被称为:

7.4.2未命名的包

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

Interesting Posts