我正在制作一个模拟高斯整数的类。我在加法中使用了构造函数,将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
)void
类型new
运算符才能在Java中创建一个新的GInt
对象