我正在尝试在没有main方法的类中创建二维数组。 我可以使用代码
成功初始化数组double[][] nameArray = new double[m][n]; //m、n is the size
但是当我尝试为数组赋值
时nameArray[0][0] = 0;
出现错误并显示“;”语法错误
double[][] nameArray = new double[m][n];
但是,此代码适用于我的main方法。我很困惑,想知道出了什么问题?
任何人都可以回答我的问题吗?真的很感激。
答案 0 :(得分:6)
这只是非法语法。您可以在方法之外初始化数组,但不能将其他语句放在方法之外,例如在数组中设置特定值。请考虑将该语句添加到构造函数中。
答案 1 :(得分:0)
您可以在类中初始化数组,甚至可以使用初始值初始化,但是一旦创建变量,您就无法执行将分配值的代码。有些语言可以实现,但Java不是其中之一。
答案 2 :(得分:0)
您是否在询问如何在Java中初始化2D数组?
import java.util.*;
public class ArrayInit {
public int[][] oneArray = { { 0, 0 }, { 0, 1 }, { 1, 0 }, { 1, 1 } };
public int[][] twoArray = new int[4][2];
public int[][] threeArray = new int[4][2];
{
// you don't usually see it done this way.
threeArray[0][0] = 0;
threeArray[0][1] = 0;
threeArray[1][0] = 0;
threeArray[1][1] = 1;
threeArray[2][0] = 1;
threeArray[2][1] = 0;
threeArray[3][0] = 1;
threeArray[3][1] = 1;
}
public ArrayInit() {
// This looks cumbersome too
twoArray[0][0] = 0;
twoArray[0][1] = 0;
twoArray[1][0] = 0;
twoArray[1][1] = 1;
twoArray[2][0] = 1;
twoArray[2][1] = 0;
twoArray[3][0] = 1;
twoArray[3][1] = 1;
}
public static void main( String[] args ) {
ArrayInit ai = new ArrayInit();
System.out.println( Arrays.deepToString( ai.oneArray ) );
System.out.println( Arrays.deepToString( ai.twoArray ) );
System.out.println( Arrays.deepToString( ai.threeArray ) );
}
}
您可以在声明时完全初始化数组,例如" oneArray"以上。或者,您可以在声明时为阵列指定一个特定的大小,例如" twoArray"以上。在声明时,你不能给数组赋一个特定的大小并初始化它的一部分。