定义一个接口用来实现两个对象的比较。
程序员文章站
2024-03-22 11:24:58
...
定义一个接口用来实现两个对象的比较。
interface CompareObject{
public int compareTo(Object o); //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小
}
定义一个Circle类。
定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。在ComparableCircle类中给出接口中方法compareTo的实现体,用来比较两个圆的半径大小。
定义一个测试类TestInterface,创建两个ComparableCircle对象,调用compareTo方法比较两个类的半径大小。
思考:参照上述做法定义矩形类Rectangle和ComparableRectangle类,在ComparableRectangle类中给出compareTo方法的实现,比较两个矩形的面积大小。
package com.xatu.接口;
public interface CompareObject {
public int compareTo(Object o);
class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
@Override
public String toString() {
return "半径" + radius;
}
}
class ComparableCircle extends Circle implements CompareObject {
public ComparableCircle(double radius) {
super(radius);
}
@Override
public int compareTo(Object o) {
if (o instanceof Circle) {// 如果不进行预判出现ClassCastException
if (this.getRadius() == ((Circle) o).getRadius()) {
return 0;
} else if (this.getRadius() < ((Circle) o).getRadius()) {
return -1;
} else {
return 1;
}
}
return 2;
}
}
class TestInterface {
public static void main(String[] args) {
CompareObject c1 = new ComparableCircle(10);// 可以使用多态和本态,优先使用多态(站高望远)
CompareObject c2 = new ComparableCircle(10);
int compRs = c1.compareTo(c2);
System.out.println(compRs);
switch (compRs) {
case 0:
System.out.println("相等");
break;
case 1:
System.out.println("右边大");
break;
case -1:
System.out.println("左边大");
break;
default:
break;
}
}
}
}
上一篇: 算法导论----插入排序
推荐阅读
-
定义一个接口用来实现两个对象的比较。
-
定义两个带参的宏,一个用来求s,一个用来求area。写程序,在程序中用带实参的宏名来求面积area.
-
宏定义,定义一个宏比较两个数的大小
-
Java中一个类怎么实现两个接口中相同名字的抽象方法
-
定义两个接口,其中各包括一个抽象方法分别用来完成两个数的加法和减法操作,然后创建一个类KY6_3来实现这两个接口中的抽象方法。编写程序KY6_3.java,将源程序写在实验报告中。
-
Map集合的遍历方式以及TreeMap集合保存自定义对象实现比较的Comparable和Comparator两种方式
-
java中两个对象间的属性值复制,比较,转为map方法实现
-
jdk8使用stream实现两个list集合合并成一个(对象属性的合并)
-
实现X*Y,其中X=4,Y=3,在数据段定义X,Y两个8位的变量和一个两个字节的Z变量,计算结果存放在Z变量中。
-
Map集合的遍历方式以及TreeMap集合保存自定义对象实现比较的Comparable和Comparator两种方式