0

我正在做一个将一种方法与另一种方法结合起来的练习。我知道该getMinMax()方法有一个空数组,但这与练习的目的无关。

代码:

public class Square{
    int area;

    public Square[] getMinMax(Square[][] arr){
        Square[] list = new Square[2];
        return list;
    }

    public int getArea(){
        return area;
    }

    public boolean isDifferenceSignificant(Square[][] arr){
        boolean isit = false;
        Square [] result = getMinMax (arr);
        if((result[1] - result[0])< 0.5) //The line (16) in question
            isit = true;
        return isit;
    }
}

当我编译这个时,我得到以下错误:

Square.java:16: error: bad operand types for binary operator '-'
        if((result[1] - result[0])< 0.5)
                      ^
  first type:  Square
  second type: Square
1 error

我只是迷路了,想知道为什么会发生这个错误。

编辑:Rohit Jain 说“你可能是说—— result[1].getArea() - result[0].getArea()

和 Lochemage 说“if((result[1].getArea() - result[0].getArea())< 0.5)”

这两种方法都有效,感谢您的宝贵时间!

4

2 回答 2

1

Java 没有像 C++ 那样的运算符重载,而且你不能从另一个对象中减去一个对象。使用实际值 ( result[1].getArea())。

于 2013-08-07T21:14:30.287 回答
1

我假设您实际上想测试area每个变量Square

if((result[1].getArea() - result[0].getArea())< 0.5)

通过这样做result[1] - result[0],您正在从类中调用二进制减法运算符,Square该类可能未定义。

于 2013-08-07T21:13:11.907 回答