2015-10-18 47 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