是否可以在一个包中创建多个类并将它们导入到另一个包中?

Sar*_*air 1 java import class package

您好,我有一个关于 Java 包的问题。我创建了一个包含多个类的包[包名称是“animal”,文件名是“Zoo.java”]。我创建了另一个 java 文件,该文件位于另一个包“mypackage”中,并创建了一个名为“MAIN.java”的文件。我尝试从“MAIN.java”访问“animal”包的成员,但它向我抛出一个错误,因为它无法访问“animal”包的类。我知道只有同一包中的类才可以相互访问,或者应该公开。但我只能在“Zoo.java”中将一个类更改为公共类。所以我找到了一种解决方案,为动物包中的每个类创建单独的java文件并将其公开。还有其他方法吗?我的理解是,我们可以将所有类编写在一个文件中并从任何地方导入它们。下面是我的截图。 在此输入图像描述

还有一件事,在java库中它们是如何实现的?包中每个类的单独源文件?

T.J*_*der 5

所以我找到了一种解决方案,为动物包中的每个类创建单独的java文件并将其公开。

如果您想在定义它们的包之外使用类,是的,它们必须是public. 并且只有public它们的一部分是可访问的,子类除外,子类也可以访问protected它们的一部分。本教程中有更多内容。

是的,给定文件中只能有一个public类(并且文件名必须与public类名匹配)。在 Java 中,无论如何我们都倾向于这样做。它有助于避免文件变得巨大且难以处理。

还有其他方法吗?我的理解是,我们可以将所有类编写在一个文件中并从任何地方导入它们。

我不确定你从哪里得到这种理解。要在包外使用类,它们必须public位于public单独的文件中。

来自您对另一个答案的评论:

...就我而言,如果我Elephant按照publicthen的方式进行操作Zoo.java,我只能访问该特定类,而不能访问其他类,例如Fish和Bird。

正确的。如果您希望它们全部公开,而不是拥有Zoo.java、拥有Elephant.java、Fish.java和Bird.java。