对于我的类赋值,我们需要编写一个名为Matrix的类,它包含一个名为“matrix”的私有二维int数组,最多可以有10行×10列。我们需要使用两个常量MAXROWS = 10和MAXCOLS = 10来构造'矩阵'。 Matrix类还需要以下属性:
private int rows; // number of rows to use in matrix
private int cols; // number of cols to use in matrix
行和列将包含小于等于MAXROWS和MAXCOLS的值。 编写一个默认的Matrix类构造函数,用以下值构造'matrix'数组:
{{1,2,4,5},{6,7,8,9},{10,11,12,13}, {14,15,16,17}}
构造函数还必须设置rows和cols变量以匹配上面的矩阵。
编写一个方法'getSumMatrix',它返回数组'matrix'中所有整数的总和。
编写一个方法'getSumMatrixDiag',它返回数组'矩阵'主对角线中所有整数的总和。主要对角线是从左上角到右下角形成的对角线 矩阵。
是否可以查看我的代码(我在哪里初始化数组并用值填充它以确保它是正确的。我坚持的部分是getSumMatrix和getSumMatrixDiag。getSumMatrix方法错误就行了“for(i = 0; i< a.matrix; i ++)”并告诉我“找不到符号 - 变量矩阵”。以同样的方式对getSumMatrixDiag进行说明。为什么这样?非常感谢你。
这是我的代码
/ ** 索菲亚·阿里
Matrix,getSumMatrix,getSumMatrixDiag:
仅发送电子邮件至Matrix.java。
编写一个名为Matrix的类,其中包含一个私有的二维int 称为“矩阵”的数组,最多可达10行×10列。 使用两个常量MAXROWS = 10和MAXCOLS = 10来构造'矩阵'。
Matrix类还需要以下属性:
private int rows; //在矩阵中使用的行数 private int cols; //矩阵中使用的col数
行和列将包含小于等于的值 MAXROWS和MAXCOLS。
编写构造'矩阵'的默认Matrix类构造函数 具有以下值的数组:
{{1,2,4,5},{6,7,8,9},{10,11,12,13},{14,15,16,17}}
构造函数还必须设置rows和cols变量以匹配 在矩阵之上。
编写一个方法'getSumMatrix',它返回所有整数的总和 在数组'矩阵'中。
写一个方法'getSumMatrixDiag',它返回所有的总和 数组'矩阵'的主要对角线上的整数。一个主要的对角线是 从左上角到右下角形成的对角线 矩阵。
您不必编写TestMatrix类来测试Matrix类。 只需使用BlueJ对象创建和测试功能。
* / 公共类矩阵 {
final int MAXROWS = 10;
final int MAXCOLS = 10;
private int [][] matrix = new int [MAXROWS][MAXCOLS];
private int rows;
private int cols;
public Matrix()
{
int matrix[][] =
{
{1, 2, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}};
getSumMethod(matrix);
getSumMatrixDiag(matrix);
}
public double getSumMethod(int[][] a)
{
int i, result;
result = 0;
for(i=0; i < 10; i++)
{
result = result + i;
}
return result;
}
public double getSumMatrixDiag(int[][] m)
{
int sum = 0;
for (int i =0; i< m.length; i++)
{
sum = (int)(sum + m[i][i]);
}
return sum;
}
}
编辑:
我正在使用BlueJ来运行我的程序,当我运行它时,我收到错误“错误不兼容的类型”。我不确定我的编码是否错误(当我编译它时,它编译时没有语法错误)或者我是否错误地使用BlueJ。
答案 0 :(得分:0)
在你的代码中,矩阵变量的范围就在构造函数里面。因此它在getSumMethod中不可见。另外a是如上所述的数组a.matrix不正确。
请尝试以下。调用方法getSumMethod(matrix)将矩阵作为参数传递,并用a替换a.matrix。然后看到你可以至少前进一些东西(可能是另一个错误)。如果您在下面尝试,那么您将通过输入正确的逻辑来解决与数据类型相关的错误。但是这段代码需要很多改进才能按照你需要的方式运行。
final int maxrows = 10;
final int maxcols = 10;
private int [][] matrix = new int [maxrows][maxcols];
private int rows;
private int cols;
public Base64Test() {
int matrix[][] =
{{1, 2, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}};
getSumMethod(matrix);
}
public double getSumMethod(int[][] a) {
int i, result;
result = 0;
for(i=0; i < a.length; i++) {
result = result + a[i];
}
return result;
}
答案 1 :(得分:0)
对不起,我不知道这是你想知道的那个,但这对你有帮助。
public class Matrix{
private int matrix[][] ;
public Matrix ()
{
int[][] matrix = {{1, 2, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}};
this.matrix=matrix;
int final_result=0;
for(int i=0;i<matrix.length;i++)
{
final_result+=getSumMethod(matrix[i]);
}
System.out.println("Final result is..."+final_result);
}
public int getSumMethod(int[] a) {
int i, result;
result = 0;
for(i=0; i < a.length; i++) {
result = result + a[i];
}
return result;
}
}
...