Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将二维数组作为参数传递_Java_Arrays - Fatal编程技术网

Java 将二维数组作为参数传递

Java 将二维数组作为参数传递,java,arrays,Java,Arrays,如何在Java中将二维数组作为参数传递。例如,我获取矩阵作为输入并显示的代码如下: import java.util.Scanner; class matrix { int i,j; static int[][] a = new int[3][3]; Scanner one = new Scanner(System.in); public static void main(String args[]) { matrix obj = new m

如何在Java中将二维数组作为参数传递。例如,我获取矩阵作为输入并显示的代码如下:

import java.util.Scanner;

class matrix {
    int i,j;
    static int[][] a = new int[3][3]; 
    Scanner one = new Scanner(System.in);

    public static void main(String args[]) {
        matrix obj = new matrix();
        System.out.println("Enter the Matrix");
        obj.getdate(a); 
        obj.display(a);
    }

    void getdata(int[][] a) {
        for (i = 0; i < 3; i++) {
            for (j = 0; j < 3; j++) {
                a[i][j] = one.nextInt();
            }
        }
    }

    void display(int[][] a) {
        for (i = 0; i < 3; i++) {
            for (j = 0; j < 3; j++) {
                System.out.println("" + a[i][j]);
            }
        }
    }
}

这种传递二维数组的方式不起作用。将2D数组作为参数传递的正确方法是什么?

问题是您试图从其作用域之外访问。要使其工作,您需要将display的方法签名更改为displayint[][]a。这应该适合在obj.displaya;中显示数组值时进行的调用

首先,您应该命名以大写字母开头的类,例如Matrix,而不是Matrix,以遵循Java约定

调用未定义参数的方法显示时出现错误。因为数组a是一个类成员字段,所以不需要传递它来显示,因为它已经对所有类成员可见。因此,您可以简单地将其称为:

obj.display();
类似地,对于在调用getdate而不是getdata时出现拼写错误的getdata方法,您可以在不使用任何参数的情况下定义它:

void getdata() {
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            a[i][j] = one.nextInt();
        }
    }
}

您也不需要将数组设置为静态。

将您的display方法签名更改为void displayint[]a;不工作这是您收到的错误/异常消息吗?如果没有,请更好地描述您的问题。如果您收到错误消息,则无法在此行obj.getdatea;上解析方法“getdateint[][]”;,那你怎么看?你试图用什么方法来解决那个问题?不,我是新手,Java不是什么都不尝试的借口。