淮南网站网站建设,巨量引擎广告投放平台代理,大型网站开发的书,天津建站大家好#xff0c;今天我们来看看接口的一些实例#xff0c;关于如何定义和实现接口#xff0c;相信通过这些例子#xff0c;我们能有一些清晰的认知。
先定义一个学生类#xff1a; 再给定一个学生数组#xff0c;对这个对象数组中的元素进行排序#xff08;按分数排今天我们来看看接口的一些实例关于如何定义和实现接口相信通过这些例子我们能有一些清晰的认知。
先定义一个学生类 再给定一个学生数组对这个对象数组中的元素进行排序按分数排 按照我们之前的理解数组我们有一个方法(sort 方法)能否直接使用这个方法呢 .仔细思考不难发现,和普通的整数不一样,两个整数是可以直接比较的大小关系明确而两个学生对象的大小关系怎么确定呢,需要我们额外指定..
让Student类实现Comparable接口,并实现其中的cmpareto方法 注意:Comparable接口中有一个抽象方法:
public int compareTo(T o);
我们需要重写此方法(实现该接口时) 在sort方法中会自动调用compareTo方法, compareTo的参数为Object,其实传入的就是student类里的对象,然后比较当前对象和参数对象的大小关系(按分数来算).
再次执行程序,结果就符合预期了. 注意事项:
1,对于sort方法来说,需要传入的数组的每个对象都是可比较的,需要具备compareTo这样的能力,通过重写compareTo方法的方式,就可以定义比较规则.
2.如果没有写compareTo方法,会抛出异常。
ClassCastException 类型转换异常
3.String类为什么排序时不需要我们重写
因为String类实现了Comparable接口有了可比较的功能.
4.一个自义定类一定要支持可比较大小的功能,那儿么就必须去实现你的 Comparable 接口.
好了今天分享就到这里留给大家一个问题
假如我们需求变换了要根据姓名比较大小(根据字符的大小来排序)大家下去自己试一试明天再为大家解答谢谢大家的阅读。