抽象-接口中练习题的问题及解决思路

定义一个接口用来实现两个对象的比较。
interface CompareObject{
public int compareTo(Object o); //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小
}

public interface CompareObject {
     public int compareTo(Object o);
}

此处object为一类,将它作为形参,object为所有类的父类

定义一个Circle类,声明redius属性,提供getter和setter方法

class Circle {
    private double radius;

    public Circle() {
    }

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

}

定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。在ComparableCircle类中给出接口中方法compareTo的实现体,用来比较两个圆的半径大小。

public class ComparableCircle extends Circle implements CompareObject {
    //private Object Circle;

    public ComparableCircle() {

    }

    public ComparableCircle(double radius) {
        super(radius);
    }

    @Override
    public int compareTo(Object o) {
        if (o instanceof Circle) {
            if(this.getRadius()==((Circle)o.getRadius()){
                return 0;
            }else if(this.getRadius()>((Circle)o.getRadius()){
                return 1;
            }else {
                return -1;
            }
        }
        return 2;
    }


}

此处 if (o instanceof Circle) 则是将方法输入的形参与本类做比较,若他们不为同一类则返会2,若为同一类执行将圆的属性半径值进行比较,注意此时对=右边进行一次强转,再根据值进行比较

定义一个测试类InterfaceTest,创建两个ComparableCircle对象,调用compareTo方法比较两个类的半径大小。

public class InterfaceTest {
    public static void main(String[] args) {
        CompareObject c1=new ComparableCircle(1);
        CompareObject c2= new ComparableCircle(2);
        System.out.println(c1.compareTo(c2));
    }
}

此处创建两个新的对象,并直接在构造方法中赋值,并调用方法进行比较,注意c1为当前对象,则值输出为-1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值