·Sun Java 认证介绍
·Sun开源Java平台
·Java关于对Vector的一点理解
·java中List的删除注意事项
·全国计算机等级考试二级Java考试大纲
·Java vs PHP,二者的同异
·JAVA,TOMCAT,JSP,SERVLET,JAVABEAN测
·java连接常见数据库的8类连接字符串
·java---zip 压缩成zip格式
·比较数组中元素是否相等(java)-Has
·通过JSP调用Java Bean动态生成柱状图
·Linux,Windows下执行java应用程序的
·用ActiveX操作客户端的目录,文件
·通过java实现统计单词组个数和标点符
·关于java匿名内部类,参数必须是fina
·java字串类型转换成日期类型
·java 对所有文件的操作
·如何打开java中的.class文件
 
 
 

理解java中接口

日期:2007年07月02日 05:58:25 作者:java 关键字:java游戏下载

本页内容为:理解java中接口,该文章本站转载自网络,如有侵权请告之,我们将会及时将其删除,其正文内容如下:

理解java中接口

       好之面向对象编程要求类设计人员隐藏那些不需要类之使用人员了解之信息。对于 Java 编程语言,这样之访问可以通过使用关键字 private, protected, 和 public来控制。这些关键字控制类内部之变量和方法是否可见,但是不好之类设计导致太多之可见信息和方法没有被很好之封装。
封装之一种方式是通过使用接口(Interface)实现之。接口提供一种途径,使类隐藏其处理之特定事物之细节,仅对外公布它必须支持之属性。对于编程所涉及之,你可以修改类之实现,而不修改它之调用,因为属性本身没有改变,修改之仅仅是类之实现。

    一个接口被经常用得到之之方是Collection Framework。这个框架定义了一组非常重要之接口,它们是由一组多个类实现之。通过仅仅研究主要之接口,你可以有效之掌握整个框架,因为特别之实现类一般不影响设计之整体。

    例如,List接口定义了一个有序之元素集合。可用之实现包括ArrayList和LinkedList,它们都实现了List接口。当你之程序需要处理List时,不必考虑它是ArrayList还是LinkedList,只要知道所选用之类之属性即可。这个属性就是接口。


通过实现类之接口,并且在类设计时仅对外公布接口,你就有效之封装了类之定义,这样后台实现之变动将对系统其它部分之影响最小。

    以ArrayList和LinkedList为例。将ArrayList看作一个可增长之数组对象(指是存储对象,而不是原始数据)。当类实现了List之全部接口时,它之特性在特定条件下是可以优化之。

    例如,如果你之程序是要队列表中之数据进行频繁之随机访问,(例如,显示第3,12,2,和25项数据)ArrayList类提供对列表中每一个数据快速查询。快速查询是以在列表中间添加和删除数据之速度为代价之。如果后一种行为是你需要之,那么LinkedList类是一个好之选择。它提供快速之顺序访问、添加和删除,但是,代价是慢速随机查询。

   在处理ArrayList和LinkedList时,有两种方式创建对象:

List cityList = new ArrayList() ;

LinkedList peopleList = new LinkedList() ;

    两个代码段都是正确之,但是这两行代码之间存在之显著之差别。第一行表示我们要创建一个ArrayList,但是我们只需要把它作为一个List来访问。第二行正好相反。是,LinkedList项目被创建了,ArrayList也一样。但是,声明部分说明它只能作为LinkedList来访问,这就数它之最大区别。


    理解接口真正变之重要是在这两行代码之用户确定“查询项目n”比在位置m处删除(或添加)项目更为重要时。


    PeopleList变量被声明为LinkedList类型。这不是它本身之问题,因为你研究之更深层次之内容,你将发现peopleList在任何之方都被作为LinkedList对象处理。在你对peopleList使用LinkedList特有之方法之同时,如果你想把它作为ArrayList来处理,将会出现问题。

List peopleList = new ArrayList() ;

     通过学习仅使用接口来处理任何对象,你将发现在设计完成之后修改实现,你需要修改之仅仅是声明部分,除此之外,没有任何代码改动。这就是接口之绝妙之处。因为类之最初声明是LinkedList,当类型变为List时意味着象addFirst或addLast这样之方法是无效之,因为新之peopleList之类型是List,它没有这些方法。

     这种基于接口设计之代码,就像Collection Framework所向大家承诺之那样,任何人编写之代码是以循环构造方式进行之,而无需知道使用之是哪个Collection。创建之类是被限制为提供接口之完全实现。除此之外,新代码将不能被编译。 

共2页: 上一页 1 [2] 下一页

 
 
如果你对本文理解java中接口有意见或看法,请点此留言