Java 将二维数组作为参数传递
如何在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
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不是什么都不尝试的借口。