2015-10-13 105 views
0

我明白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; 
    } 
} 

回答

0

添加getter getMatrix()返回矩陣;

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

+0

你做了什麼可以工作,謝謝你,因爲它讓我的思維過程繼續下去。但是,我只是引用每個方法的私有int [] []矩陣。謝謝。 – ryanc

+0

您還需要返回新的APMatrix(m2),而不僅僅是m2。 – Sammy

+0

發生構建錯誤後,我修復了......再次感謝! – ryanc