`

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

    博客分类:
  • java
阅读更多
接口

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

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

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


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

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

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

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


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


为什么需要接口


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

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

系统中,使用接口提供抽象层,从而有乃至于消除重复

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


Comparable的实现

方法compareTo必须返回int类型的值,如果返回0,那么两个对象相同,如返回值为负数,哪么接收者应该排在参数的前面,如果返回值为正数,那么参数应该在接收者的前面.
分享到:
评论
1 楼 heven0818 2012-01-20  
请问书本转让不?我想买这本书,找不到

相关推荐

Global site tag (gtag.js) - Google Analytics