我正在制作一个模拟高斯整数的类。我在加法中使用了构造函数,将gInt的两个部分相加两个,然后返回一个新的gInt,即总和。但是由于某种原因,当我尝试实现此方法时,Java表示初始化新gInt时需要一个gInt,并且它发现一个空值。为什么会这样呢?我已经在下面包含了该类,并指出了导致此错误的行。

public class gInt {

    private int real;
    private int imag;



    public void gInt(int r)
    {
        imag=0;
        real=r;

    }

    public void gInt(int r, int i)
    {
        real=r;
        imag=i;

    }

    gInt add(gInt rhs)
    {
        gInt added;
        int nReal=this.real+rhs.real;
        int nImag=this.imag+rhs.real;

        added= gInt(nReal,nImag);   //--> Says it requires a gInt and found a void

        return added;
    }
}

最佳答案

使用此实现,所有人都会很高兴:

public class GInt {

    private int real;
    private int imag;

    public GInt(int r) {
        imag=0;
        real=r;
    }

    public GInt(int r, int i) {
        real = r;
        imag = i;
    }

    GInt add(GInt rhs) {
        GInt added;
        int nReal = this.real + rhs.real;
        int nImag = this.imag + rhs.real;

        added = new GInt(nReal, nImag);

        return added;
    }
}

评论:
  • 不要使用以小写字母开头的类名(例如gInt而不是GInt)
  • Java中的
  • 构造函数在Java中没有返回类型,因此我在OP中删除了void类型
  • 您需要new运算符才能在Java中创建一个新的GInt对象
  • 10-04 14:56