将一个类的对象传递给另一个类的方法

赛亚人

我有一个包含类定义的Matrix类:

import java.util.Scanner;

public class Matrix {

    private int[][] matrix;

    //construct matrix with given number of rows and columns
    public Matrix(int n, int m){
        matrix = new int[n][m];
    }

    //input values into matrix
    public void readMatrix(){
        Scanner input = new Scanner(System.in);
        for (int r = 0; r < matrix.length; r++){
            for (int c = 0; c < matrix[r].length; c++){
                matrix[r][c] = input.nextInt();
            }
        }
    }

    //display values of matrix
    public void displayMatrix(){
        for (int r = 0; r < matrix.length; r++){
            for (int c = 0; c < matrix[r].length; c++){
                System.out.print(matrix[r][c] + " ");
            }
            System.out.print("\n");
        }
    }
}

和一个MatrixApp类,其中包含以下主要内容:

import java.util.Scanner;

public class MatrixApp {

    public static void main(String[] args) {
        Matrix m1 = null; //create matrix m1
        promptMatrix(m1); //ask for data for m1 from user
        m1.displayMatrix(); //display m1
    }

    private static void promptMatrix(Matrix m) {
        Scanner input = new Scanner(System.in);
        int rows, columns;
        //ask for number of rows
        System.out.print("Enter the number of rows: ");
        rows = input.nextInt();
        //ask for number of columns
        System.out.print("Enter the number of columns: ");
        columns = input.nextInt();
        //create matrix
        m = new Matrix(rows, columns);
        //ask for matrix data
        System.out.println("Enter matrix: ");
        m.readMatrix();
    }
}

我在上收到Null Pointer Exception错误m1.displayMatrix()我想这是因为尽管我已将m1传递给方法hintMatrix,但m1中什么都没有存储。为什么会这样,请问我该如何解决?

itz

编辑:关于错误发生的位置,我犯了一个错误(我的错误,我没有完全读完。但是,下面写的内容对于理解如何更好地以易于阅读的方式编写代码很有用,所以我将离开起来吧。

<----此标记与下面的标记之间的任何内容都不是解决此问题的正确方法,但有助于理解以下内容可能会带来的好处,因此我将其保留下来->

就像您说的m1为null一样,您正在将其传递到方法中,因此您收到了NullPointerException。您将需要通过new运算符初始化Matrix对象。矩阵m1 =新矩阵(n,m); // n和m是它们所需的任何值,因为没有默认构造函数,但这不是完成您要执行的操作的好方法。

<----此标记与上面的标记之间的任何内容都不是解决此问题的正确方法,但有助于理解以下内容可能会带来的好处,因此我将其保留下来->

正确的方法是让该方法返回一个Matrix对象而不是一个对象。

方法如下所示:

public static Matrix promptMatrix() {
    //code to get n and m and set up matrix
    return new Matrix(n, m);
}

然后,在您的主要方法中,您将执行以下操作:

Matrix m1 = promptMatrix(); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将类对象传递给另一个类方法 Python

将类的对象传递给另一个类

将另一个类的对象传递给单例类

将模板类的对象传递给另一个类的构造函数

通过另一个类将对象传递给一个类

如何将编写的对象传递给另一个类的构造函数?

SwiftUI通过引用将类对象传递给另一个视图

将类对象传递到另一个类中的列表的方法

将使用“ this”的类的对象传递给另一个类(Javascript)

Kivy/Python 如何将对象传递给另一个类?

将模板化结构的对象传递给另一个模板化类的成员函数

如何将数组(firestore)中的选定对象传递给 react native 中的另一个类?

C ++将一个对象传递给另一个对象?

试图将一个对象的实例传递给另一个类

如何在我的 Java 代码中将对象传递给另一个类的方法?

Nashorn将Java对象传递给另一个Java方法

无法将复杂对象传递给另一个Action方法

将数组传递给另一个类

将一个类传递给另一个类(Python)

PHP将一个类传递给另一个类构造函数

将一个类传递给另一个类

使用构造函数将一个类传递给另一个类

将一个类作为参数传递给另一个类

将指针类方法作为参数传递给另一个类方法C ++

如何将具有字符串数据成员的类的对象传递给C ++中的另一个类

将类的方法作为参数传递给C ++中的另一个类

将类方法作为回调传递给javascript中的另一个类

在cython中将c ++对象传递给另一个对象的方法的方法

C ++:如何将一个对象传递给另一个对象构造函数?