在Java中从父包导入类

在Java中从父包导入类,java,Java,我怀疑我误解了Java中包的一些基本概念。 以下是我的项目层次结构: 应用程序(带主程序的类) 选项(类) 算法(包) 预处理选项(类) 生成图像(类) 现在,我希望预处理选项类将使用选项类来获取所有必要的数据,但我的IDE无法找到该类 有什么解释吗? 谢谢。关于,访问级别修饰符决定其他类是否可以使用特定字段或调用特定方法。有两个级别的访问控制: 在顶级public或package private(无显式修改器) 在成员级别上为public、private、protected或pack

我怀疑我误解了Java中包的一些基本概念。 以下是我的项目层次结构:

  • 应用程序(带主程序的类)
  • 选项(类)
  • 算法(包)
    • 预处理选项(类)
    • 生成图像(类)
现在,我希望预处理选项类将使用选项类来获取所有必要的数据,但我的IDE无法找到该类

有什么解释吗? 谢谢。

关于,访问级别修饰符决定其他类是否可以使用特定字段或调用特定方法。有两个级别的访问控制:

  • 在顶级public或package private(无显式修改器)
  • 在成员级别上为public、private、protected或package private(无显式修改器)

可以使用修饰语public声明一个类,在这种情况下,该类对任何地方的所有类都可见。如果一个类没有修饰符(默认值,也称为包专用),则它仅在其自己的包中可见(包是相关类的命名组-您将在后面的课程中了解它们)。

创建这样的结构

src
 -> main
     -> Application (class with main)
     -> Option (class)
 -> Algorithm (Package)
     -> PreProcessOptions (class)
     -> GenerateImage (class)
现在在预处理选项类中导入主包

package Algorithm;
import main.Option;

希望这会有所帮助。

在哪个包选项类中?您的选项类在主包中吗?您的选项类有哪些访问修饰符?尽管它们的命名似乎是分层的,但Java包在语言/JVM中没有任何分层,尽管您真正的问题是使用默认软件包。感谢您的insight@MarkRotterVeethanks!这很有帮助。我创建了一个名为Application的新包,并将Application.class和Options.class拖到该包中。从那里,我可以访问预处理选项中的选项。