我对编程非常陌生,我必须在这里遗漏一些东西。第一部分有效。第二部分出现了错误。那是为什么?
// this works
private static int[] test2 = {1,2,3};
// this is ok
private static int[] test1 = new int[3];
// these three lines do not work
// tooltip states ... "cannot find symbol. class test1. ']' expected."
test1[0] = 1;
test1[1] = 2;
test1[2] = 3;
答案 0 :(得分:4)
根据您发布的内容,
行test1[0] = 1;
test1[1] = 2;
test1[2] = 3;
需要在方法或构造函数中。看起来你在课堂上有他们。让我们说MyClass
是你班级的名字。添加一个构造函数并将三个语句放在其中:
MyClass {
test1[0] = 1;
test1[1] = 2;
test1[2] = 3;
}
编辑:您只能在类中直接声明变量。但是,声明语句还可以包含初始化(在同一行上):
int[] arrayA; // declare an array of integers
int[] arrayB = new int[5]; // declare and create an array of integers
int[] arrayC = {1, 2, 3}; // declare, create and initialize an array of integers
另一方面,以下内容不是声明,只涉及初始化:
arrayB[0] = 1;
所以它不能直接在课堂下。它必须包含在方法,构造函数或初始化块中。
另见:
答案 1 :(得分:2)
要使用java源文件必须是这样的:
public class Test
{
// this works
private static int[] test2 = {1,2,3};
// this is ok
private static int[] test1 = new int[3];
public static void main( String args[] ){
test1[0] = 1;
test1[1] = 2;
test1[2] = 3;
}
}
答案 2 :(得分:1)
您还可以将代码放在静态初始化块中,该块在加载类时执行。
public class Test {
// this works
private static int[] test2 = {1,2,3};
// this is ok
private static int[] test1 = new int[3];
static {
test1[0] = 1;
test1[1] = 2;
test1[2] = 3;
}
}