2013-04-07 38 views
0

正如很多地方所述,一個類產生一個包 - 私有訪問級別,這意味着這樣的類只能被其他人訪問,纔是相同的包。我不知道很多關於軟件包的知識,但是我想知道你在文件開頭添加「軟件包x」是足夠的知識來提出我的問題。對包 - 私有作品的Java默認類訪問如公開

我製作了一個帶有類成分的文件。另一個文件包含

public class cooking{ 
    public static void main(String[] args) {..... 

有任何地方沒有包聲明。不過,我的程序成功編譯了這兩個文件,並且也運行了。我錯過了什麼?烹飪班不應該看不到配料嗎?

+0

請張貼更多主要使用成分和成分類的代碼。 – Aubin 2013-04-07 21:02:32

+0

發佈這兩個類的'package'語句。 – 2013-04-07 21:06:33

回答

1

您的IDE(如netbeans或eclipse)編譯代碼,因爲這兩個類都在同一個項目中,並且「知道」您的意思是該類。

1

類可以在沒有import語句的情況下查看同一目錄中的其他類。包是組織代碼的方式,基本上只是應用程序文件夾中的目錄。所有的類可以看到同一類的其他類,而不需要進口,在不同的包爲您的結構是這樣定義它:

src 
| 
+- Cooking.java 
| 
+- utilities 
    | 
    +- Ingredient.java 

當然,你的成分文件將與package utilities;來開頭,並且如果你試圖通過烹飪訪問它會導致錯誤,除非在文件中有import utilities.Cooking;。軟件包私有僅僅意味着軟件包(或文件夾)以外的類無法查看或訪問該文件或它的包私有屬性。

1

如果您沒有爲java類添加包語句,那麼這些類位於相同的包中=所謂的「默認」包。因此無論您將類定義爲公共還是不公開,這些類都可以訪問對方。

public class A 

=此類A中的所有包

class B 

是可見=此B類僅受在相同的包中的類作爲B是可見

相關問題