我必须从给定的接口构建一堆可比较的对象。 在课堂上,这是我的构造函数:
public S()
{
Comparable[] arr = new Comparable[INITSIZE];
size = 0;
}
现在,在数组出现的每个方法中,例如:
public void push(Comparable x)
{
arr[size++] = x;
}
我在编译时找不到与arr相关的符号错误。为什么呢?
答案 0 :(得分:2)
我在编译时找不到与arr相关的符号错误。
在类中声明arr
但在任何方法或构造函数之外。
public class S{
Comparable[] arr;
}
并在构造函数中初始化它。
public S()
{
arr = new Comparable[INITSIZE];
}
否则arr
对其他方法不可见,并且在编译时你将无法找到与arr
相关的符号错误,因为它是构造函数中的局部变量。
public class S{
Comparable[] arr = null;
public S()
{
arr = new Comparable[INITSIZE];
}
}