接口练习随笔

 一:根据题目定义接口 ComparableObject并写入方法

二:创建父类Circle,根据题目定义变量,对其进行私有化

三:创建子类ComparableCircle,继承父类,实现接口,完成接口中方法的实现

public int compareTo(Object o) {
//    ↑这个是一个,传入过来的对象
//    实现compareTo方法,比较两个圆半径的大小
//    另一个对象,谁调用这个方法就是谁,就是this
if (o instanceof Circle) {
// instanceof 判断o是否可以强制转换成circle格式
// ↓明确知道传过来的对象是圆半径,则可以进行强制转换 Circle c = (Circle)o; if (this.getRadius() > c.getRadius()) { System.out.println("当前对象半径大"); return 1; }else if (this.getRadius() < c.getRadius()) { System.out.println("当前对象半径小"); return -1; }else { System.out.println("两个对象半径相等"); return 0; } }

模仿上,得下

矩形面积对比:由边长求得面积,再对面积进行比对

第一步相同

第二步创建Rectangle类,直接在其构造方法中定义有参构造,执行求面积

   
//      有参构造
     public Rectangle(double len,double wei){
         this.len = len;
         this.wei = wei;
         sum = len * wei;
    }
      

第三步:创建ComparableRectangle类继承Rectangle,实现接口

    public ComparableRectangle(double len, double wei) {
        super(len, wei);
    }

    
    public int compareTo(Object o) {
        if (o instanceof Rectangle) {
            Rectangle r = (Rectangle)o;
            if (this.getSum() < r.getSum()) {
                System.out.println("当前矩形面积小");
                return -1;
            } else if (this.getSum() > r.getSum()) {
                System.out.println("当前矩形面积大");
                return 1;
            }else{
                System.out.println("面相等");
                return 0;
            }
        }else {
            System.out.println("类型不匹配,无法比对");
            return 4;
        }
    }

Final:创建测试类,进行测试

 public static void main(String[] args) {
//         比较圆
         ComparableCircle c1 = new ComparableCircle();
         ComparableCircle c2 = new ComparableCircle();
         c1.setRadius(5.3);
         c2.setRadius(3);
         System.out.println(c1.compareTo(c2));
//比较矩形
         ComparableRectangle r1 = new ComparableRectangle(1.3, 2.2);
         ComparableRectangle r2 = new ComparableRectangle(4.4, 5);
         System.out.println(r1.compareTo(r2));
         
     }

运行结果如下:

猜你喜欢

转载自www.cnblogs.com/lkkkk/p/12172833.html