java.io.Serializableインターフェイスを実装し、radiusに基づいて円をモデル化する "Circle"という名前のJavaクラスを作成します。半径はゼロより小さくすることはできません。 radiusのgetterメソッドとsetterメソッドを実装します。サークルクラスにtoStringのオーバーライドも含めます。サークル型の2つのオブジェクトを比較するクラスのコンパレータを作成します。円の2つのオブジェクトを比較する
これは私が持っているもので、これまで
import java.io.Serializable;
public class Circle implements Serializable, Comparable<Circle> {
private int radius = 1;
public Circle() {
}
public Circle(int radius) {
setRadius(radius);
}
public void setRadius(int v) {
if (v > 0) {
this.radius = v;
}
}
public int getRadius() {
return this.radius;
}
@Override
public String toString() {
return "Circle{" + "radius=" + radius + '}';
}
@Override
public int compareTo(Circle o) {
//no idea what to put here
}
}
これは私のコンパレータクラス
import java.util.Comparator;
public class CompareCircle implements Comparator<Circle> {
CompareCircle(Circle c1, Circle c2) {
}
@Override
public int compare(Circle o1, Circle o2) {
if (o1.getRadius() > o2.getRadius()) {
return o1.getRadius();
} else {
return o2.getRadius();
}
}
}
私はこの権利をしましたされて私の質問あるいは全く?
いいえ、あなたはしませんでした。 Comparatorのjavadocを読んで、その理由とcompare()メソッドが返すべきものを理解してください。 Comparableを実装しないあなたはサークルを比較するためにコンパレータを使用していますか? –
//ここに何を置くべきかわからない - 'return Integer.comapre(this.getRadius()、o.getRadius())' –