eclipse在令牌上给出错误

时间:2014-07-12 15:59:41

标签: java arrays eclipse

我正在编写一个关于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

出了什么问题?

3 个答案:

答案 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
}