网站开发国内外现状研究,个人主页模板设计,微信运营是做什么的,Wordpress 标签无用接口不是类#xff0c;而是对类的一组需求描述。Arrays类中的sort方法承诺可以对对象数组进行排序#xff0c;但要求满足下列条件#xff1a;对象所属的类必须实现了Comparable接口。public interface Comparable
{int compareTo(Object other);
}Java SE5.0#xff0c;Com…接口不是类而是对类的一组需求描述。Arrays类中的sort方法承诺可以对对象数组进行排序但要求满足下列条件对象所属的类必须实现了Comparable接口。public interface Comparable
{int compareTo(Object other);
}Java SE5.0Comparable接口已经改为泛型类型public interface ComparableT
{int TEST_VAR 1;int compareTo(T other);
}1. 任何实现Comparable接口的类都需要包含compareTo方法并且这个方法的参数必须是一个Object对象返回一个整型数值。2. 接口中所有方法自动地属于public。因此在接口中声明方法时不必提供关键字public。 但是在实现接口时必须把方法声明为public否则编译器将认为这个方法的访问属性是包 可见性。3. 接口中可以定义常量。与接口中的方法都被自动地被设置为public一样接口中的域将被自动设为public static final。4. 接口中不能含有实例域。5. 接口中可以建档提供方法但是这些方法中不能引用实例域——接口中没有实例域。类实现某个接口public class Employee implements ComparableEmployee
{private int id;private String name;/*** compareTo返回一个整型数值。对象不相等返回一个正值或者负值。在对两个整数域进行比较时这点非常有用。* 例如根据id对Employee进行排序可以返回id-other.id* 但是注意整数范围不能够过大以免造成减法计算溢出。* 如果id为非负整数或者他们的绝对值不超过(Integer.MAX_VALUE - 1) / 2就不会出现问题。否则调用Integer.compare方法。 */public int compareTo(Employee other){return Integer.compare(id, other.id);// return id - other.id;// double类型可以用Double.compare()}
}和.equals方法一样在子类Manager继承父类Employee的时候Comparable中compareTo方法也会出现问题子类中compareTo方法修改方式和.equals方法类似。有两种不同的情况如果子类之间的比较含义不一样那就属于不同的子类对象的非法比较。每个compareTo方法都应该在开始时进行下列检测if (getClasss() ! other.getClass()) throw new ClassCastException();2. 如果存在这样一种通用算法它能够对两个不同的子类对象进行比较则应该在超类中提供一个compareTo方法并将这个方法声明为final。