我一直在尝试用Java声明数组,如教程所述,但收到一个错误。这是我的代码:

public class ArrayExample {

   private static final int SIZE = 15;

   /*   this works   */
   int[] arrayOfInt = new int[SIZE];

   /*  but this doesn't work, says "cannot find symbol"  */
   int[] arrOfInt;
   arrOfInt = new int[SIZE];


   public static void main(String[] args) {

      /*  but here it works; why? what's the difference? */
      int[] arrOfInt;
      arrOfInt = new int[SIZE];
   }
}


我在教程中找不到这种差异的解释。为什么第二个声明不起作用而main方法中的第三个声明起作用?

最佳答案

您不能将赋值语句作为类定义的一部分来编写。

可以使用第一种方法(首选),也可以将赋值移动到构造函数中(在这种情况下不是必需的,但是如果在构造对象之前不知道大小,则可能很有用-然后可以将其作为参数传递给构造函数)。

int[] arrOfInt;

public ArrayExample()
{
    arrOfInt = new int[SIZE];
}

08-19 11:28