我正在编写一个关于2d数组的基本程序,只是定义和初始化。
1 package testing;
2
3 public class Array2 {
4 int [][] twoDim = new int[4][];
5 twoDim[0] = new int[]{1,2,3};
6 System.out.println(twoDim[0][1]) ;
7 }
但是我在分号的第3行得到错误说:
Syntax error on token ";", { expected after this token
出了什么问题?
答案 0 :(得分:1)
您需要将代码放在可以执行的地方。 System.out.println
是执行语句。您可能希望使用主要方法。
public class Array2 {
public static void main(String[] args){
int [][] twoDim = new int[4][];
twoDim[0] = new int[]{1,2,3};
System.out.println(twoDim[0][1]) ;
}
}
注意:您可以结合使用:方法,构造函数,静态初始化程序,类声明等,以使其正确执行。主要方法似乎最适合您尝试做的事情。
在&#34的评论中回答你的问题;如何使数组成为类变量"。
您可以将twoDim
设为类变量。我会使用Constructor
来设置数组中的值。在main方法中,您必须创建类的实例,以便可以访问其成员。另请注意,在创建类的实例时会调用构造函数。例如:
public class Array2 {
public int [][] twoDim = new int[4][];
public Array2(){ // Constructor for Array2 class
twoDim[0] = new int[]{1,2,3}; // Set the values
}
public static void main(String[] args){
Array2 array2Instance = new Array2(); // Create an instance, calls constructor
System.out.println(array2Instance.twoDim[0][1]); // Access the instance's array
}
}
请注意,您必须创建twoDim
变量public
才能在类外部访问它 - 例如在main方法中。
答案 1 :(得分:0)
你不能写
System.out.println(twoDim[0][1]);
在java中的方法或块之外 这可能应该做的工作
public static void main(String arr[])
{
int [][] twoDim = new int[4][];
twoDim[0] = new int[]{1,2,3};
System.out.println(twoDim[0][1]) ;
}
或类似的东西
int [][] twoDim = new int[4][];
public void display()
{
twoDim[0] = new int[]{1,2,3};
System.out.println(twoDim[0][1]) ;
}
public static void main(String arr[])
{
new Array2().display();
}
您可以在方法或代码块中初始化数组。
答案 2 :(得分:0)
System.out.println(twoDim[0][1]) ;
此声明应位于某个块或方法内。你不能像在课堂上那样拥有它。把它放在一些块或方法中。
如果我不写System.out.println(....),错误仍然存在。
在以这种方式定义数组后,无法初始化数组元素。你需要把声明
twoDim[0] = new int[]{1,2,3};
在block / method / constructor中。
同样适用于任何阵列
例如
public class HelloWorld {
String[] strArray =new String[10]; //all good
strArray[0] ="str"; //same compile time error you are getting
}