同一个文件夹和同一个包上的Java文件

同一个文件夹和同一个包上的Java文件

问题描述:

至少在我的机器上,当我把两个Java类文件放在同一个文件夹中,而不使它们成为同一个包的一部分时,它们已经看到另一个文件,所以从一个文件我可以从另一个文件中调用公共类,反之亦然。同一个文件夹和同一个包上的Java文件

问题:

  1. 这是一般的情况或可能不是每一个平台上工作是巧合吗?

  2. 如果这不是巧合,我猜测包的目的是允许您组织类文件并使它们共享内容,即使它们分布在不同的文件夹和路径中。这是正确的还是我错过了什么?

如果未指定包名称,则文件中的类将进入特殊的未命名包。对于没有明确包装规格的所有文件,情况都是如此。因此,它们都属于特殊的未命名软件包,并展现出您所看到的行为。

您可能想要通过 this以获得更好的理解。

+0

嘿,那就是发生了什么。 – 2012-03-10 11:07:30

如果它们在同一个目录中,那么它们在同一个包中,或者在编译器写入后复制.class文件?

包是一种将类组织到名称空间中的方法。有很多原因可以做到这一点,最好的选择是从tutorial开始。

  1. 我确定它是一般情况,但它是坏的方法。
  2. 你是对的,但是使用包的更一般的理由是分隔命名空间,例如,你必须创建Car类,但是有很多人想要使用这个类名,这就是为什么你必须使用包,因为例如:com.yourcompany.yourproject。在这种情况下,您可以使用您的包中的Car类而不隐式地定义包,并且您还可以以下列方式使用其他Car类:new com.google.general.Car(); 在java规则中,建议使用从右到左的域名来提供唯一的包名称。