-2
int Area() {

            int area=iX1*iY1;
            return area;
        }

        int compareTo(Object r) {


            if(r==area) {

                return 0;
            }

            if (r>area) {

                return 1;
            }
            else {

                return -1;
            }

        }

int iX1 と iY1 は、プログラムの最初に宣言する変数です。int areaパラメータとして送信されたものと比較する必要がありますr。私が得る問題は、area比較できないことですr

4

5 に答える 5

1

==オブジェクトを比較しながら使用しています。演算子==は参照を比較するため、両方の参照が同じオブジェクトを参照している場合にのみ、結果が true になることがあります。おそらくequals()代わりに呼び出す必要があります。

于 2013-04-03T13:23:45.167 に答える
0

Object が定義したい何らかのクラスである場合は、整数と比較できる値を持たせてください。それが本当に Java の Class "Object" である場合、そのような比較を行う方法はありません。

于 2013-04-03T13:26:08.553 に答える
0

int 値をオブジェクトと比較しようとしています。r を Area にキャストしてから、面積フィールドを比較する必要があります

Area areaObject = (Area)r;
if(areaObject.area == this.area) {
     return 0
}

このコードには他にも問題があります。クラスの宣言はこのようにすることはできません。

class Area {
    private int area;
    public Area(int x, int y) {
         area = x * y;
    }
}
于 2013-04-03T13:30:46.590 に答える