我正在制作一个模拟高斯整数的类。我在加法中使用一个构造函数来添加gInt的两个部分,然后返回一个新的gInt,即和。但是,由于某种原因,当我试图实现这个方法时,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;
}
}发布于 2015-06-01 02:30:51
使用此实现,所有人都会高兴的:
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操作符来创建一个新的GInt对象发布于 2015-06-01 02:31:29
您的没有在类的构造函数上指定返回类型。您的构造函数应该如下所示:
public gInt(int r)
{
imag=0;
real=r;
}
public gInt(int r, int i)
{
real=r;
imag=i;
}注意我是如何在方法名称前面删除void的。
创建类的新实例时,还必须使用new 关键字关键字。
added= new gInt(nReal,nImag);有关如何在Java中创建对象的更多信息,看一看医生。
发布于 2015-06-01 02:43:18
构造的函数不能使用void,而使用added = new gInt(nReal,nImag);可能不喜欢,您可以使用added = new gInt.gInt(nReal,nImag); gInt是一个对象,您需要创建,然后可以使用对象!
https://stackoverflow.com/questions/30564836
复制相似问题