Java 引用同一目录中的类

2022-09-02 21:18:43

我在Java中创建了一个类(类似于c ++对),并且无法从其他java文件中引用它。我正在Java文件中工作,让我们将其称为同一目录,此外,我已经在两个文件的顶部编写了。PairfileAPair.class.package current-directory

但是,当我尝试所有错误时,小箭头都指向我的自定义类型。javac fileAcannot find symbolPair

如何让 Java 编译器看到里面?Pair.classfileA

感谢所有的帮助


答案 1

Java由一些基本约定驱动,包括目录结构遵循包结构,Java文件以它们定义的类命名。

您应该将 fileA 定义为 fileA 中的一个类.java如下所示:

public class fileA {
    public static void main(String[] args) {
        Pair p = new Pair(0, 1);
        System.out.println("a is "+p.a+" and b is "+p.b);
    }
}

和相应的 Pair 类:

public class Pair {
    public final int a;
    public final int b;
    public Pair(int a, int b) {
        this.a = a;
        this.b = b;
    }
}

如果从与两个 java 文件相同的目录中调用 javac,则不应在顶部声明包,因为它们位于“默认包”中。因此,上述内容应该有效。

使用默认包提供了一些便利,但也有一些限制,我不会详细说明,但是现在您已经了解了默认包,您可以查找它。我建议使用包名称,这就像添加一样简单,就像你所做的那样,像这样:

package kugathasan;

在每个文件的开头。如果你这样做,你应该把这两个文件放在一个名为kugathasan的目录中,并从包含kugathasan的目录中调用javac。


答案 2

这是一个包结构问题。通过查看此屏幕截图,您可能会了解它们在我的IDE和文件夹中的外观。

enter image description here

在文件夹中,它们看起来像这样。

enter image description here

在代码中,他们有这个包。

package com.jini;

希望您了解其工作原理。