2014-10-06 27 views
0

我有一個包含以下目錄:目錄中的兩個java文件是否被視爲「包?」?

1)A.java
2)B.java

難道這一切是爲了叫我的目錄中的Java「一攬子」要求?如果我編譯這兩個文件會導致帶有兩個額外的.class文件的目錄,該怎麼辦?它可以被認爲是一個包嗎?還是有其他要求/行動?

+0

如果兩個Java文件具有相同的'package'指令,則它們位於相同的包中。他們實際上不需要在同一個目錄中(儘管這是一個好主意)。 – 2014-10-06 15:37:23

回答

3

文件必須以與它們所在的目錄匹配的包聲明開頭。

例如:

package com.something;

如果文件位於com/something下。

com/ 
    something/ 
     A.java 
     B.java 
+1

我不認爲包名必然需要與目錄結構相匹配(儘管它當然是很好的做法)。 – MrHug 2014-10-06 15:32:32

+0

@MrHug JLS不需要它,但Java的許多實現都依賴於它。請參閱[這裏](http://docs.oracle.com/javase/tutorial/java/package/managingfiles.html)。 – Eran 2014-10-06 15:37:48

+0

正如@MrHug所說,源文件與包聲明不在同一目錄結構中。源文件中的包聲明決定了一個類包。然而它已經成爲一個慣例以及一個良好的習慣。由於這種情況,許多工具已經被開發出來,期待這種行爲。 – markbernard 2014-10-06 15:38:27

0

要在同一個包,文件都必須包含這一行:

package com.example.samepackage; 

(例如)

0

包就像是目錄結構,但不與窗口的混淆或其他操作系統的文件夾。

只是將包視爲一個文件包。

只寫: 包什麼;

作爲您程序中最頂級的行。所有具有相同包名的文件將被放置在相同的「任何」包中,因此可以用於進一步實現,如「import amything;」如果你想在其他程序中使用這些文件,然後使用這些文件的結構。

相關問題