对于参数类型,运算符+未定义Constante

时间:2013-10-28 00:33:04

标签: java

我正在尝试做一个总和,但我总是得到那个类型错误。类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;
    }
}

2 个答案:

答案 0 :(得分:3)

替换

return Left + Right;

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

其中gettergetter方法,用于实际尝试求和的任何值。这也假设您有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);

答案 1 :(得分:0)

Constante是一个对象,你不能添加对象(String除外,这是一个特殊情况),因为它的含义会在一个对象之间变化,如果它有一个完全没意思。

Constante可能有一个方法constante.add(otherConstante),或者如果它是你自己的类,你可以写一个。 .add()方法最有可能添加Constante中包含的任何数字值。

或者,如果您不需要对象行为,请停止使用类Constante并开始使用double(或其他数字基元)。

其他说明

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