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

还有一件事,在java库中它们是如何实现的?包中每个类的单独源文件?
所以我找到了一种解决方案,为动物包中的每个类创建单独的java文件并将其公开。
如果您想在定义它们的包之外使用类,是的,它们必须是public. 并且只有public它们的一部分是可访问的,子类除外,子类也可以访问protected它们的一部分。本教程中有更多内容。
是的,给定文件中只能有一个public类(并且文件名必须与public类名匹配)。在 Java 中,无论如何我们都倾向于这样做。它有助于避免文件变得巨大且难以处理。
还有其他方法吗?我的理解是,我们可以将所有类编写在一个文件中并从任何地方导入它们。
我不确定你从哪里得到这种理解。要在包外使用类,它们必须public位于public单独的文件中。
来自您对另一个答案的评论:
...就我而言,如果我
Elephant按照publicthen的方式进行操作Zoo.java,我只能访问该特定类,而不能访问其他类,例如Fish和Bird。
正确的。如果您希望它们全部公开,而不是拥有Zoo.java、拥有Elephant.java、Fish.java和Bird.java。