agile java 学习笔记 第五章 接口与多态 第一小节 接口

[b]接口[/b]

ArrayList只可以保存添加顺序,如要对列表进行排序,可以调用Collections.sort方法,但必须保证列表中的元素是java.lang.Comparable类型

Comparable是一个接口,接口包含若干个方法的定义.java的Comparable类型的定义是:

public interface Comparable<T>
{
  public int comprarTo( T o );
}


[color=red]在这里,字符"T"是先告待比较类型的占位符,java编译器用实际类型来代替接口定义所有的T.[/color]

将定义和类定义进行对比.区别在于:使用interface关键字声明接口,使用class关键字声明类.接口不包含任何方法的实现.

方法 comparable 的作用是:根据排序规则,返回一个值,通过值来判断某个对象应该排在另一个对旬的前面还是后面.

在回到Comparable接口,可以看一下String的代码
public final class String
  implements java.io.Serializable , Comparable<String> , CharSequence
{
...


方法sort轮流取出集合中的每一个对象,[color=green]并且将对象赋值给一个Comparable接口类型的变量.如果赋值成功,那么方法sort可以成功的将消息sort发送给这个对象.如果赋值不成功,java会报错[/color]


[b]为什么需要接口
[/b]

接口是Java提供的非常强大和重要的功能.使用接口是可靠设计的关键之一.正确地使用接口可以帮助您划分软件,最少化不同代码之间的相互影响,用户只用关心抽象的质量,而不用关心任何代码的细节

可以将抽象排序概念视为消除重复的一种方式.接口允许某个算法操作不同类型的对象.排序算法没有用来判断对象类型重复代码

[color=red]系统中,使用接口提供抽象层,从而有乃至于消除重复[/color]

通过编写符合接口规范的桩代码,您可以利用接口消除代码之间的依赖关系,这些代码可以不工作甚至不存在.接口是实现有效测试的基本工具.


[b]Comparable的实现[/b]

方法compareTo必须返回int类型的值,如果返回0,那么两个对象相同,如返回值为负数,哪么接收者应该排在参数的前面,如果返回值为正数,那么参数应该在接收者的前面.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值