我正在创建一个类,它的私有成员之一是另一个类的对象.当我尝试调用已在我的公共实例方法中创建的类的公共实例方法时,我得到一个NullPointerException.
我测试了它,当我从构造函数调用find函数时,它工作正常,但是当我从下一个随机函数调用find函数时,它给了我异常.怎么了?
public class Percolation
{
private WeightedQuickUnionUF uf;
private boolean sites[][];
public Percolation(int N)//constructor
{
sites = new boolean[N][N];
int arraySize = N * N;
WeightedQuickUnionUF uf = new WeightedQuickUnionUF(arraySize);
System.out.println("we found the first node at " + uf.find(31));
}
public void trialQuickFind()
{
System.out.println("we found the first node at " + uf.find(31));
}
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中你是影子 uf.更改
WeightedQuickUnionUF uf = new WeightedQuickUnionUF(arraySize);
Run Code Online (Sandbox Code Playgroud)
至
this.uf = new WeightedQuickUnionUF(arraySize);
Run Code Online (Sandbox Code Playgroud)
关于可变阴影的维基百科条目(部分),
在计算机编程中,当在特定范围内声明的变量(决策块,方法或内部类)与在外部范围中声明的变量具有相同的名称时,会发生变量阴影.在标识符(名称而不是变量)的级别上,这称为名称屏蔽.该外部变量被称为由内部变量遮蔽,而内部标识符被称为掩盖外部标识符.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |