我对 Java 完全陌生,并且无法引用我在另一个 .java 文件中声明的类。我在 Oracle 网站上阅读了很多关于它的内容以及许多 stackoverflow 问题,但无法解决问题。以下是我采取的步骤:
设置类路径。
我在 UNIX 上运行它。所以我输入了
% java -classpath /users/myUserName/algs4/assignment1
. 它没有更改类路径,而是给了我一长串其他选项。
在我的每个 .java 文件中包含“包名称”,这些文件具有我想要引用的类定义。
我还确保我要引用的所有文件都在同一个目录中。这是我的一些代码:
package assignment1;
public class Percolation
{
private int[][] grid;
....
//Other method definitions etc.
public Percolation(int N)
{
uf = new WeightedQuickUnionUF(N);
grid = new int[N][N];
...
//Other code
}
}
我的 WeightedQuickUnionUF 类也定义为:
package assignment1;
public class WeightedQuickUnionUF {
private int[] id; // id[i] = parent of i
private int[] sz; // sz[i] = number of objects in subtree rooted at i
private int count; // number of components
//Create an empty union find data structure with N isolated sets.
public WeightedQuickUnionUF(int N) {
count = N;
id = new int[N];
sz = new int[N];
for (int i = 0; i < N; i++) {
id[i] = i;
sz[i] = 1;
}
}
}
但是现在当我使用 javac Percolation.java 编译时。它给了我错误:
Percolation.java:7: cannot find symbol
symbol : class WeightedQuickUnionUF
location: class assignment1.Percolation
WeightedQuickUnionUF uf;
^
我知道这是因为编译器不知道什么是 WeightedQuickUnionUF 类。它不能引用它。但是我该怎么做呢?我已经尝试过流行的解决方案。
我没有使用任何 IDE。只是一个文本编辑器,然后在终端上编译它。
(algs4 文件夹有 stdlib.jar 等文件)
编辑:我错过了“新”关键字。我已经添加了。我也在 Percolation.java 之前编译我的 WeightedQuickUnionUF 类