1

我必须从给定的界面构建一堆可比较的对象。在类中,这是我的构造函数:

public S()
{
   Comparable[] arr = new Comparable[INITSIZE];
   size = 0;
}

现在,在数组出现的每个方法中,例如:

public void push(Comparable x)
{
   arr[size++] = x;
}

我在编译时找不到与 arr 相关的符号错误。为什么?

4

1 回答 1

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];
        }

    }
于 2016-02-19T12:24:08.107 回答