0

我正在尝试求和,但我总是得到那个类型错误。OperateurBinair 类接受两个 Constante 类型的参数,Constante 是我在其中创建值的类(type = double )。

public class Plus extends OperateurBinair {

Constante Left;
Constante Right     ;
Constante Somme ; 

Plus() {

    super();
    Left = new Constante();
    Right = new Constante();
    }

Plus(Constante x , Constante y) {

super(x,y);
Left=x;
Right=y;
}

Constante addition() {

    return Left + Right;
    }
}
4

2 回答 2

3

代替

return Left + Right;

return Constante(Left.getter() + Right.getter());

您实际尝试求和的任何值getter的方法在哪里。getter这还假设您有一个Constante带有double参数的构造函数。如果没有,您将需要更多类似的东西:

Constante sum = new Constante;
sum.setter(Left.getter() + Right.getter());
return sum;

(或者只是添加一个带双精度的构造函数。)

或者,您可以添加一种方法来Constante进行求和。

public static Constante sum(Constante addend1, Constante addend2) {
    //do whatever logic you want for summing these and return a Constante 
    //with the new value
}

然后在您当前正在工作的课程中,您可以执行以下操作:

return Constante.sum(Left, Right);
于 2013-10-28T00:38:16.640 回答
0

Constante是一个对象,你不能添加对象(除了String,这是一种特殊情况),因为它的含义会随着对象的变化而变化,如果它有任何意义的话。

Constante可能有一个方法constante.add(otherConstante),或者如果它是你自己的类,你可以编写一个。该.add()方法很可能会添加包含在Constante.

Constante或者,如果您不需要对象行为,请停止使用该类并开始使用双精度(或其他数字原语)。

其他注意事项

按照惯例,变量名称Left不应以大写字母开头。类在 UpperCamelCase 中,变量在 lowerCamelCase 中。

于 2013-10-28T00:38:30.497 回答