题目:
代码:
circle:
package com.jiekou;
public class Circle {
private double radius;
public Circle() {
super();
}
public Circle(double radius) {
super();
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
接口
CompareObject
package com.jiekou;
public interface CompareObject {
//若返回值为0,代表相等;
//若为正数,代表当前对象大;
//负数,代表小
public abstract int compareTo(Object o);
}
比较半径
ComparableCircle extends Circle implements CompareObject
package com.jiekou;
public class ComparableCircle extends Circle implements CompareObject {
public ComparableCircle(double radius) {
super(radius);
}
@Override
public int compareTo(Object o) {
if(this == o) { //instance of使用
return 0;
}
if(o instanceof ComparableCircle) { //是一种类型则上面二行代码,不是的话,强制类型转 //换
ComparableCircle c = (ComparableCircle)o;
if(this.getRadius() > c.getRadius()) {
return 1;
}else if(this.getRadius() < c.getRadius()) {
return -1;
}else {
return 0;
}
}else {
throw new RuntimeException("传入数据类型不对");
}
}
}
viewtest
package com.jiekou;
public class ComparableCircleTest {
public static void main(String[] args) {
ComparableCircle c1 = new ComparableCircle(3.4);
ComparableCircle c2 = new ComparableCircle(3.6);
int num = c1.compareTo(c2);
if(num > 0) {
System.out.println("c1大");
}else if(num < 0) {
System.out.println("c2大");
}else {
System.out.println("一样的");
}
}
}