2012-03-10 90 views
1

至少在我的機器上,當我把兩個Java類文件放在同一個文件夾中,而不使它們成爲同一個包的一部分時,它們已經看到另一個文件,所以從一個文件我可以從另一個文件中調用公共類,反之亦然。同一個文件夾和同一個包上的Java文件

問題:

  1. 這是一般的情況或可能不是每一個平臺上工作是巧合嗎?

  2. 如果這不是巧合,我猜測包的目的是允許您組織類文件並使它們共享內容,即使它們分佈在不同的文件夾和路徑中。這是正確的還是我錯過了什麼?

回答

2

如果未指定包名稱,則文件中的類將進入特殊的未命名包。對於沒有明確包裝規格的所有文件,情況都是如此。因此,它們都屬於特殊的未命名軟件包,並展現出您所看到的行爲。

您可能想要通過 this以獲得更好的理解。

+0

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

0

如果它們在同一個目錄中,那麼它們在同一個包中,或者在編譯器寫入後複製.class文件?

包是一種將類組織到名稱空間中的方法。有很多原因可以做到這一點,最好的選擇是從tutorial開始。

0
  1. 我確定它是一般情況,但它是壞的方法。
  2. 你是對的,但是使用包的更一般的理由是分隔命名空間,例如,你必須創建Car類,但是有很多人想要使用這個類名,這就是爲什麼你必須使用包,因爲例如:com.yourcompany.yourproject。在這種情況下,您可以使用您的包中的Car類而不隱式地定義包,並且您還可以以下列方式使用其他Car類:new com.google.general.Car(); 在java規則中,建議使用從右到左的域名來提供唯一的包名稱。
相關問題