2015-10-18 68 views
-4

我完全不熟悉Java。我正在學習斯坦福CS-106A。在這門課程中,他們提供了acm.jar和yahtzeelib.jar來完成作業。我在互聯網上找到了答案,他爲什麼在他的代碼開頭輸入acm。但是當他想要使用yahtzeelib.jar中的方法時,他可以直接使用它們而不需要導入yahtzeelib。這兩個jar文件有什麼區別?

所以我的問題是,爲什麼有使用這兩個jar文件之間的差異?(一個必須進口,其他的都可以直接在代碼中使用)

This is the code

+3

有點很難說,沒有向我們展示代碼... – GhostCat

+0

罐子包含編譯類,這些類包含您想要使用的方法。除了java.lang包類,其他類需要導入(總是) –

+0

對不起,我想我已經添加了一張圖片,但我不知道爲什麼你看不到它。 –

回答

0

你並不需要導入在Java中使用它們的類只需要在CLASSPATH上。

如果一個名爲「Baz」的類位於包「foo.bar」中,那麼您可以立即通過名稱「foo.bar.Baz」使用它。

如果你「導入foo.bar.Baz;」,那麼你可以用簡單的名字「Baz」來引用那個類。

我的猜測是,來自.jar#2的類位於Default包中。

+0

是的,我剛剛發現#2在默認包中。謝謝! –

+0

我只是試圖導入.jar#2,但它失敗了,它說「無法解決」。這是否意味着當它在默認包中時我不能導入這種類型的文件? –

+0

您不導入文件,您從包中導入名稱。你需要在類路徑中放置jar,一旦你完成了 - 其中的所有類將以全名(this.is.a.package.ClassName)提供。如果您希望能夠使用短名稱(ClassName),請使用導入。 – folkol