当前位置: 首页 > news >正文

接口使用实例(1)

大家好,今天我们来看看接口的一些实例,关于如何定义和实现接口,相信通过这些例子,我们能有一些清晰的认知。

先定义一个学生类:

再给定一个学生数组,对这个对象数组中的元素进行排序(按分数排):

 

按照我们之前的理解,数组我们有一个方法(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 接口.

好了今天分享就到这里,留给大家一个问题:

假如我们需求变换了,要根据姓名比较大小(根据字符的大小来排序),大家下去自己试一试,明天再为大家解答,谢谢大家的阅读。

 

http://www.lryc.cn/news/529119.html

相关文章:

  • 动态规划DP 最长上升子序列模型 总览
  • 网络工程师 (7)进程管理
  • 登录授权流程
  • Flutter_学习记录_导航和其他
  • 二叉树-堆(补充)
  • Big Bird:适用于更长序列的Transformer模型
  • doris:MySQL Load
  • 电感的饱和、温升、额定电流
  • 基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
  • 【go语言】函数
  • CTF-web: phar反序列化+数据库伪造 [DASCTF2024最后一战 strange_php]
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(动态菜单组件实现)
  • EtherCAT主站IGH-- 23 -- IGH之fsm_slave.h/c文件解析
  • windows10 配置使用json server作为图片服务器
  • Linux——网络(tcp)
  • 腾讯云开发提供免费GPU服务
  • 详解python的修饰符
  • 《攻克语言密码:教AI理解隐喻与象征》
  • 如何解除TikTok地区限制:实用方法解析
  • 神经网络|(七)概率论基础知识-贝叶斯公式
  • 《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
  • 使用Edu邮箱申请一年免费的.me域名
  • 【MCU】DFU、IAP、OTA
  • 2025.1.21——六、BUU XSS COURSE 1 XSS漏洞|XSS平台搭建
  • 跟李沐学AI:视频生成类论文精读(Movie Gen、HunyuanVideo)
  • 7.抽象工厂(Abstract Factory)
  • python-leetcode-路径总和
  • WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ
  • 智能汽车网络安全威胁报告
  • WPS怎么使用latex公式?