我试图做的是使用一个方法,它是构造对象的一部分(它显示为Matrix.getArray()
)。它本质上是double[][]
。但是我需要将我构造的Matrix
中的2个相乘,但由于某些限制,它必须以这种方式完成。所以我想知道如何获得所选Matrix
的范围。
以下是一些代码,可以更好地说明我的意思:
Matrix matA = new Matrix(arrayA);
Matrix matB = new Matrix(arrayB);
matA.mulBy(matB);
这是我的main()
课程的一部分,该课程将启动该计划,并调用matA
的{{1}}方法,该方法会将其乘以mulBy
。但是我不能让它工作,因为我无法在范围中选择matB
的索引来乘以,如下所示:
matA
所以我想问题是,如何将这些相乘以使其工作?或者我如何让public Matrix mulBy(Matrix A)
{
double[][] arrayC = new double[getRows()][A.getColumns()];
double[][] mulArray = A.getArray();
System.out.println(leng);
System.out.println(widt);
for(int f = 0; f < A.getColumns(); f++)
{
//must add F loop here
for(int i = 0; i < A.getColumns(); i++)
{
arrayC[i][f] = m[i][0] * mulArray[0][i];
}
}
Matrix matC = new Matrix(arrayC);
return matC;
}
的内容与他们合作?如何访问Matrix
的变量才能使其正常工作?
我无法正确地说出这一点并在线查找资源,因为我不知道描述此内容所需的术语。
答案 0 :(得分:0)
要从内部引用Object,您必须使用关键字this
,例如:
Class Matrix {
private double[][] myArray;
public Matrix() {...} // Constructor
public Matrix mulBy(Matrix A) {
double[][] arrayC = new double[getRows()][A.getColumns()];
double[][] mulArray = A.getArray();
System.out.println(leng);
System.out.println(widt);
for(int f = 0; f < A.getColumns(); f++)
{
//must add F loop here
for(int i = 0; i < A.getColumns(); i++)
{
// to access myArray of the object that you are calling it's method use this
arrayC[i][f] = this.myArray[i][0] * mulArray[0][i];
}
}
Matrix matC = new Matrix(arrayC);
return matC;
}
}
在这种情况下,即使您删除了this
关键字,它也会起作用,因为您的方法范围内没有任何其他变量具有相同的名称。
但是如果我们在这种情况下用myArray
替换arrayC
(例如),我们必须使用this.arrayC
来区分局部变量和实例变量。