java 中的高斯 class
gaussian class in java
我正在制作一个模拟高斯整数的 class。我在我的加法方法中使用一个构造函数来添加两个 gInt 的两个部分,然后 return 一个新的 gInt 即总和。但是由于某种原因,当我尝试实现此方法时,Java 说在我初始化新的 gInt 时需要一个 gInt 并且它发现了一个空隙。为什么会这样?我在下面包含了 class 并指出了导致此错误的行。
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;
}
}
评论:
- 不要使用以小写字母开头的 class 名称(例如
gInt
而不是 GInt
)
- Java 中的构造函数在 Java 中没有 return 类型,因此我删除了 OP
中的 void
类型
- 您需要
new
运算符在 Java 中创建一个新的 GInt
对象
您没有在class 的构造函数 上指定return 类型。您的构造函数应该如下所示:
public gInt(int r)
{
imag=0;
real=r;
}
public gInt(int r, int i)
{
real=r;
imag=i;
}
请注意我是如何删除方法名称前面的 void
的。
当您创建 class 的新实例时,您还必须 使用 new
关键字:
added= new gInt(nReal,nImag);
有关如何在 Java、have a look at the docs 中创建对象的更多信息。
构造函数不能用void
,用added = new gInt(nReal,nImag);
也许你不喜欢那样,你可以使用added = new gInt.gInt(nReal,nImag);
gInt是一个对象,你需要创建,然后你才能使用该对象!
我正在制作一个模拟高斯整数的 class。我在我的加法方法中使用一个构造函数来添加两个 gInt 的两个部分,然后 return 一个新的 gInt 即总和。但是由于某种原因,当我尝试实现此方法时,Java 说在我初始化新的 gInt 时需要一个 gInt 并且它发现了一个空隙。为什么会这样?我在下面包含了 class 并指出了导致此错误的行。
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;
}
}
评论:
- 不要使用以小写字母开头的 class 名称(例如
gInt
而不是GInt
) - Java 中的构造函数在 Java 中没有 return 类型,因此我删除了 OP 中的
- 您需要
new
运算符在 Java 中创建一个新的
void
类型
GInt
对象
您没有在class 的构造函数 上指定return 类型。您的构造函数应该如下所示:
public gInt(int r)
{
imag=0;
real=r;
}
public gInt(int r, int i)
{
real=r;
imag=i;
}
请注意我是如何删除方法名称前面的 void
的。
当您创建 class 的新实例时,您还必须 使用 new
关键字:
added= new gInt(nReal,nImag);
有关如何在 Java、have a look at the docs 中创建对象的更多信息。
构造函数不能用void
,用added = new gInt(nReal,nImag);
也许你不喜欢那样,你可以使用added = new gInt.gInt(nReal,nImag);
gInt是一个对象,你需要创建,然后你才能使用该对象!