gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:21:54 24 4
gpt4 key购买 nike

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

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

最佳答案

So I found one solution that create separate java files for each class in animal package and make it as public.

如果您想在定义它们的包之外使用类,是的,它们必须是public。并且只有它们的public部分是可以访问的,子类除外,子类也可以访问它们的protected部分。 More in this tutorial.

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

Is there any other method ? My understanding was, we can write all classes in one file and import them from anywhere.

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

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

...in my case if i made Elephant as public in Zoo.java then I can only access that particular class outside not others like Fish and Bird.

对。如果您希望它们全部公开,则不要使用 Zoo.java,而是使用 Elephant.javaFish.java Bird.java.

关于java - 是否可以在一个包中创建多个类并将它们导入到另一个包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32687908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com