Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在这种情况下,如何将对象更改为数组?_Java_Arrays_Object_Matrix Multiplication - Fatal编程技术网

Java 在这种情况下,如何将对象更改为数组?

Java 在这种情况下,如何将对象更改为数组?,java,arrays,object,matrix-multiplication,Java,Arrays,Object,Matrix Multiplication,我理解matrixMultiply()的问题会遇到问题,因为m1不是数组,而是对象。现在代码中肯定有更多的错误,但目前我正专注于在继续之前修复这个方法。可能有一个简单的解决方案,但我现在没有想到 public class APMatrix { KeyboardReader reader = new KeyboardReader(); private int[][] matrix; public APMatrix(int R, int C, boolean enter)

我理解matrixMultiply()的问题会遇到问题,因为m1不是数组,而是对象。现在代码中肯定有更多的错误,但目前我正专注于在继续之前修复这个方法。可能有一个简单的解决方案,但我现在没有想到

public class APMatrix {

    KeyboardReader reader = new KeyboardReader();
    private int[][] matrix;

    public APMatrix(int R, int C, boolean enter) {

        matrix = new int[R][C];

        if (enter) {
            for (int r = 0; r < matrix.length; r++) {
                for (int c = 0; c < matrix[r].length; c++) {
                    matrix[r][c] = reader.readInt("What value do you want in row " + (r + 1) + ", col " + (c + 1) + "? ");
                }
            }
        }
    }

    public APMatrix(int[][] copyMe) {
        for (int r = 0; r < copyMe.length; r++) {
            for (int c = 0; c < copyMe[r].length; c++) {
                matrix[r][c] = copyMe[r][c];
            }
        }
    }

    public int getRows() {
        return matrix.length;
    }

    public int getColumns() {
        return matrix[0].length;
    }

    public APMatrix matrixMultiply(APMatrix m1) {
        if (this[0].length == m1.length) {
            int[][] m2 = new int[this.length][m1[0].length];

            for (int outer = 0; outer < this.length; outer++) {
                for (int inner = 0; inner < m1[0].length; inner++) {
                    for (int all = 0; all < m1.length; all++) {
                        m2[outer][inner] += m1[all][inner];
                    }
                }
            }
            return m2;
        } else {
            return null;
        }
    }

    public String toString() {
        String retobj = "wow";
        return retobj;
    }
}
公共类APMatrix{
键盘读取器=新的键盘读取器();
私有int[][]矩阵;
公共APMatrix(int R、int C、boolean enter){
矩阵=新整数[R][C];
如果(输入){
对于(int r=0;r
添加一个返回矩阵的getter getMatrix()


在matrixMultiply()中使用m1.getMatrix(),而不仅仅是m1。

您所做的一切都会奏效,谢谢您,因为它让我的思考过程得以进行。但我只是引用了每个方法的私有int[]]矩阵。谢谢。您还需要返回新的APMatrix(m2),而不仅仅是m2。