Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以从导入的包中为类创建对象吗_Java - Fatal编程技术网

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

我是java的初学者

我在代码中导入了一个包,希望使用导入类中的函数。它说这个对象无法解析

代码如下

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
    。之后就被丢弃了。如果希望在整个类中访问它,则需要将其设置为(私有)变量。