Java 我可以从导入的包中为类创建对象吗
我是java的初学者 我在代码中导入了一个包,希望使用导入类中的函数。它说这个对象无法解析 代码如下Java 我可以从导入的包中为类创建对象吗,java,Java,我是java的初学者 我在代码中导入了一个包,希望使用导入类中的函数。它说这个对象无法解析 代码如下 import edu.princeton.cs.algs4.WeightedQuickUnionUF; public class Percolation { private int[] full; private int length; private int size; public Percolation(int n) { length
import edu.princeton.cs.algs4.WeightedQuickUnionUF;
public class Percolation {
private int[] full;
private int length;
private int size;
public Percolation(int n) {
length = n + 2;
WeightedQuickUnionUF uf = new WeightedQuickUnionUF(length);
}
// Now if I use the uf object in another function as below
public boolean isFull(int i, int j) {
boolean result = false;
if(uf.connected(0,i+j)) {
result = true;
}
return result;
}
}
//uf.connected in the public function declared in WeightedQuickUnionUF package.
//Its definition is as follows
public boolean connected(int p, int q) { /* ... */ }
public boolean connected(int p, int q) { /* ... */ }
这给了我一个错误
Error: uf cannot be resolved
uf.connected
在WeightedQuickUnionUF
包中声明的公共函数中。
其定义如下
import edu.princeton.cs.algs4.WeightedQuickUnionUF;
public class Percolation {
private int[] full;
private int length;
private int size;
public Percolation(int n) {
length = n + 2;
WeightedQuickUnionUF uf = new WeightedQuickUnionUF(length);
}
// Now if I use the uf object in another function as below
public boolean isFull(int i, int j) {
boolean result = false;
if(uf.connected(0,i+j)) {
result = true;
}
return result;
}
}
//uf.connected in the public function declared in WeightedQuickUnionUF package.
//Its definition is as follows
public boolean connected(int p, int q) { /* ... */ }
public boolean connected(int p, int q) { /* ... */ }
请告知如何从导入的软件包访问该功能。
提前谢谢 这是一个上下文问题:
uf
在Percolation的构造函数中声明,不是类的属性。这是一个上下文问题:uf
在Percolation的构造函数中声明,并且不是类的属性。您已将局部变量uf
创建到构造函数中,并尝试从方法isFull()
访问它
您可以:
uf
创建到方法isFull()
中并使用它uf
成为你班上的一员并使用它李>
uf
调用方法李>
您已将局部变量
uf
创建到构造函数中,并尝试从方法isFull()
访问它
您可以:
uf
创建到方法isFull()
中并使用它uf
成为你班上的一员并使用它李>
uf
调用方法李>
您在构造函数中创建了变量uf,这意味着其他函数将无法看到/使用它 正如上面有人所说,例如,您可以在isFull()函数中创建WeightedQuickUnionUF对象,或者,因为您需要长度,并且在构造函数中将其作为参数接收,所以可以执行以下操作:
//now uf is a local variable inside a Percolation object
private WeightedQuickUnionUF uf;
public Percolation(int n) {
length = n + 2;
//now uf is created whenever you create a Percolation object
uf = new WeightedQuickUnionUF(length);
}
现在您可以在isFull()方法中访问它了 您在构造函数中创建了变量uf,这意味着其他函数将无法看到/使用它 正如上面有人所说,例如,您可以在isFull()函数中创建WeightedQuickUnionUF对象,或者,因为您需要长度,并且在构造函数中将其作为参数接收,所以可以执行以下操作:
//now uf is a local variable inside a Percolation object
private WeightedQuickUnionUF uf;
public Percolation(int n) {
length = n + 2;
//now uf is created whenever you create a Percolation object
uf = new WeightedQuickUnionUF(length);
}
现在您可以在isFull()方法中访问它了 它在教室外面是的。您仅在构造函数中创建了
uf
。之后就被丢弃了。如果你想在整个类中访问它,你需要把它变成一个(私有)变量,它在类之外。您仅在构造函数中创建了uf
。之后就被丢弃了。如果希望在整个类中访问它,则需要将其设置为(私有)变量。