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

代わりに、実際areaにそれぞれの変数をテストしたいと思いますか?Square

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

そうすることで、定義されていない可能性result[1] - result[0]のあるクラスから二項減算演算子を呼び出しています。Square

于 2013-08-07T21:13:11.907 に答える
1

Java には C++ のような演算子のオーバーロードがなく、あるオブジェクトを別のオブジェクトから減算することはできません。実際の値 ( result[1].getArea()) を使用します。

于 2013-08-07T21:14:30.287 に答える