我有一个界面IMatrix:
public interface IMatrix {
int[][] data = null;
public int rows = 0;
public int cols = 0;
int getElement(int row, int column);
void setElement(int row, int column, int value);
IMatrix sum(IMatrix m1, IMatrix m2);
IMatrix product(IMatrix other);
boolean equals(IMatrix other);
String toString();
}
例如,下面是一个sum()我想在每个类中以不同方式实现的方法,但是当访问 fields 时rows,colsEclipse 会抛出警告:
静态字段 IMatrix.cols 应该以静态方式访问
我不太明白如何在实现接口的类中正确实现方法。
以下是我尝试在类中实现此方法的UsualMatrix方法IMatrix:
@Override
public IMatrix sum(IMatrix m1, IMatrix m2) {
if ((m1.rows != m2.rows) || (m1.cols != m2.cols)) {
throw new MatrixOperationException("Matrices must be the same size to be added together.");
}
UsualMatrix mtxFinal = new UsualMatrix(rows, cols);
for (int i = 0; i < this.rows; i++) {
for (int j = 0; j < this.cols; j++) {
mtxFinal.data[i][j] = m1.data[i][j] + m2.data[i][j];
}
}
return mtxFinal;
}