0
    import java.util.Scanner;
    public class Matrix{
    private int rowNumber;
private int colNumber;
private int val;
int [][] matrix;

public Matrix(){
    rowNumber = 0;
    colNumber = 0;
}

public Matrix(int row, int col){
    rowNumber = row;
    colNumber = col;
    Matrix obj = new Matrix();
    matrix = new int [rowNumber][colNumber];

    Scanner input = new Scanner(System.in);
    for (int i = 0; i < rowNumber; i++) {
        for (int j = 0; j < colNumber; j++) {
            System.out.println("Enter A" + (i+1) +""+ (j+1) + " : ");
            matrix [i][j] = input.nextInt();
            int val = matrix[i][j];
            obj.setElement(rowNumber,colNumber,val);
        }               
    }
    obj.display();
}

public void setElement(int r, int c, int value){
    matrix = new int [rowNumber][colNumber];
    matrix[r][c] = value;
}

public int getElement(int r, int c){
    matrix = new int [rowNumber][colNumber];
    return matrix[r][c]; 
}



    public void display(){
Matrix ex = new Matrix();
String str = "|\t";
for(int i=0; i<rowNumber; i++){
    for(int j=0; j<colNumber ;j++){
        **str += ex.getElement(i,j) + "\t";**
        }
System.out.println(str + "|");
str = "|\t";
}
    }

    public static void main (String[] args) {
int rowNumber;
int colNumber;
Scanner input = new Scanner(System.in);

System.out.println("Enter number of rows: ");
rowNumber = input.nextInt();
System.out.println ("Enter number of columns: ");
colNumber = input.nextInt();
Matrix obj1 = new Matrix(rowNumber,colNumber);
    }
    }

必要なマトリックスを表示できません。get メソッドと set メソッドに問題があります。プログラムの入力値を配列に格納し、その値を変数に格納します。次に、その変数が引数として set メソッドに渡されます。 setmethod は値を受け取り、それを r 行 c 列の配列に入れます。すべての値は配列に格納され、次に display メソッドがコンストラクターで呼び出されます。 get メソッドで値を取得します。

4

2 に答える 2

1

NullPointerException基本的に、空のコンストラクターを使用して新しいオブジェクトを作成し、そこからマトリックスのプロパティを設定しようとしたため、コードにはいくつかのMatrixがありました。つまり、空のコンストラクター内にマトリックスが作成されなかったため、null を指していました。

代わりにこれを試してください(ここでプラバカーの答えも使用しました):

public Matrix(int row, int col){
    rowNumber = row;
    colNumber = col;
    matrix = new int[rowNumber][colNumber];

    Scanner input = new Scanner(System.in);
    for (int i = 0; i < rowNumber; i++) {
        for (int j = 0; j < colNumber; j++) {
            System.out.println("Enter A" + (i + 1) + "" + (j + 1) + " : ");
            matrix[i][j] = input.nextInt();
            int val = matrix[i][j];
            setElement(rowNumber - 1, colNumber - 1, val);
        }
    }
    display();
}

public void setElement(int r, int c, int value) {
    matrix[r][c] = value;
}

public int getElement(int r, int c) {
    return matrix[r][c];
}

public void display() {
    String str = "|\t";
    for (int i = 0; i < rowNumber; i++) {
        for (int j = 0; j < colNumber; j++) {
            str += getElement(i, j) + "\t";
        }
        System.out.println(str + "|");
        str = "|\t";
    }
}`
于 2013-08-25T19:06:46.603 に答える