2016-11-08 35 views
1

類文件:我使用2D int數組來存儲值,然後我設置setter和getter2D陣列中的java傳遞

public class SquareMatrix implements SquareMatrixInterface{ 
    int[][] squareMatrix; 

    public int[][] getSquareMatrix() { 
     return squareMatrix; 
    } 

    public void setSquareMatrix(int[][] squareMatrix) { 
     this.squareMatrix = squareMatrix; 
    } 
} 

接口文件

public interface SquareMatrixInterface { 
    public int[][] getSquareMatrix(); 
    public void setSquareMatrix(int[][] squareMatrix); 
} 

主要:我把一個值和嘗試將值設置爲二傳手,但它給了我錯誤

public class test { 

    SquareMatrixInterface matrixA = new SquareMatrix(); 
    SquareMatrixInterface matrixB = new SquareMatrix(); 

    public static void main(String[] args) { 
     int[][] m1 = {{1,2},{3,4}}; 
     matrixA.setSquareMatrix(m1); 

    } 
} 

爲什麼它給我的錯誤,當我嘗試在數組中傳遞給SETT呃 如何通過一個二維數組,而不包括Java庫

+0

你已經有一個正確答案(約靜態與非靜態),但下次請告訴我們一個確切的錯誤消息和堆棧跟蹤。 – Whome

+0

你可以包含堆棧跟蹤嗎? –

回答

3

你不能訪問非靜態屬性裏面靜態塊.. [無法使靜態參考非靜態字段],所以你需要重寫你的主要方法..

public static void main(String[] args) { 
     SquareMatrixInterface matrixA = new SquareMatrix(); 
     int[][] m1 = {{1, 2}, {3, 4}}; 
     matrixA.setSquareMatrix(m1); 
    } 

OR

static SquareMatrixInterface matrixA = new SquareMatrix(); 

public static void main(String[] args) { 
    int[][] m1 = {{1, 2}, {3, 4}}; 
    matrixA.setSquareMatrix(m1); 
}