我有一个家庭作业,我必须将2D数组传递给一个方法,该方法将2D数组作为参数并打印出来。我的表工作正常,问题是我无法弄清楚如何在没有构造函数的情况下从我的main方法调用此方法。
我知道明显的解决方案是先简单地制作一个构造函数方法并使用它,但遗憾的是,由于作业的要求,我不能这样做。
任何人都可以告诉我如何调用此方法,传递参数并将其从主方法打印出来,而不使用构造函数方法?谢谢。
我正在获取:pgm1.java:75: error: non-static method arrays(int[][]) cannot be referenced from a static context
arrays(tenBy);
^
1 error
public class pgm1
{
public void arrays(int[][] userArray)
{
int rowTotal = 0;
int colTotal = 0;
int allTotal = 0;
//For loop to populate array, find total values of all odd rows,
//all even columns, and all total index values
for (int i = 0 ; i < userArray.length ; i++)
{
for (int h = 0 ; h < userArray.length ; h++)
{
userArray[i][h] = i * h;
System.out.printf("%3d" , userArray[i][h]);
//Running total of all index values
allTotal += userArray[i][h];
//Running total of all odd rows
if (i % 2 == 1)
rowTotal += userArray[i][h];
//Running total of all even columns
if (h % 2 == 0)
colTotal += userArray[i][h];
}
System.out.println();
}
//Print all totals
System.out.println("\n Total of odd numbered rows: " + rowTotal);
System.out.println(" Total of even numbered columns: " + colTotal);
System.out.println(" Total of all numbers: " + allTotal);
}
public static void main(String[] args)
{
//Creating 2D Array
int[][] tenBy = new int[10][10];
//arrays();
arrays(tenBy);
}
}
答案 0 :(得分:1)
更改
public void arrays(int[][] userArray)
到
public static void arrays(int[][] userArray)
JLS-8.4.3.2. static
Methods说(部分),
声明为
static
的方法称为类方法。
和
未声明为
static
的方法称为实例方法,有时也称为非static
方法。