首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网页制作-> Javascript教程
漫谈Java语言的接口与类型安全-JSP教程,Java技巧及代码
作者:网友供稿 点击:148
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册58元/年,空间150元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
接口是实现构件可插入性的关键,可插入构件的关键在于存在一个公用的接口,以及每个构件实现了这个接口。

  什么是接口?

  java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

  接口的两种含义:一,java接口,java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“java接口”,后者叫做“接口”。

  在java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。

  接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。

  java接口本身没有任何实现,因为java接口不涉及表象,而只描述public行为,所以java接口比java抽象类更抽象化。

  java接口的方法只能是抽象的和公开的,java接口不能有构造器,java接口可以有public,静态的和final属性。

  接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。

  为什么使用接口?

  两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。

  问题的出现:java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。

  接口是可插入性的保证。

  在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。

  我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。

  接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。

  类型

  使用java接口将软件单位与内部和外部耦合起来。使用java接口不是具体的类进行变量的类型声明,方法的返还类型声明,参量的类型声明,以及数据类型的转换。

  在理想的情况下,一个具体的java类应当只实现java接口和抽象java类中声明的方法,而不应当给多余方法。

  类型等级结构

  java接口(以及抽象类)一般用来作为一个类型的等级结构的起点。

  如果一个类已经有了一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类型,这种次要的超类型叫做混合类型。

  java接口常用方法

  单方法接口

public interface actionlistener(){

public abstract void actionperformed(actionevent event);

}

  仅且只有一个方法,只有实现了这个接口(重写这个接口中的唯一一个方法),你才有资格去事件监听器列表里注册(参数为actionlistener类型),当事件源变动时,自动调用这个唯一的actionperformed方法.

  标识接口

  是没有任何方法和属性的接口。标识接口不对实现它的类有任何语意上的要求,它仅仅表明了实现它的类属于一个特定的类型(传递)。

  不推荐过多的使用标识接口。

  常量接口

  用java接口来声明一些常量,然后由实现这个接口的类使用这些常量(以前在做画板的时候这么干过)。建议不要模仿这种常量接口的做法。

  java语言类型安全问题

  java是强类型的语言。这意味着java编译器会对代码进行检查,以确定没一次赋值,每一次方法的调用是符合类型的。如果有任何不相符合的情况,java编译器就会给出错误。

  类型检查是基于这样一个简单的事实:每一变量的声明都给这个变量一个类型;每一个方法包括构造器的声明都给这个方法的特征。这样一来,java编译器可以对任何的表达式推断出一个明显类型,java编译器可以基于明显类型对类型进行检查。

  java语言是类型安全的。这就是说,任何被java编译器接受的合法的java类保证是类型安全的。换言之,在程序运行期间,不会有任何类型的错误。一个java程序根本不可能将一个本来属于一个类型的变量当作另一个类型处理,因此也就不会产生由此而引起的错误。

  简单的说,java语言依靠三种机制做到了类型安全:编译期间的类型检查,自动的存储管理,数组的边界检查。

  注:本篇大部分内容出之阎宏老师的《java与模式》。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·基于cpld的数字触发电路的设计
·漫谈Java语言的接口与类型安全-JSP教程,Java技巧及代码
·卫星通信中tcp协议分析改进方法研究
·正则表达式-.NET教程,数据库应用
·多级目录数据库设计方案-ASP教程,数据库相关
·通信设备pac模块式开关电源的原理与维修
·如何解决ASP.NET中中文不能正常显示问题?-.NET教程,Asp.Net开发
·如何在J2ME的低级界面中轻松实现各种文字的自然分行显示-JSP教程,J2ME开发
·在C#编写代码发送邮件-.NET教程,C#语言
·session_register()出错的解决办法-PHP教程,其它文章
最新文章
·.Net中的相等性比较-.NET教程,Asp.Net开发
·权限树中Checkbox的操作[Asp.Net2.0]-.NET教程,Asp.Net开发
·VB2005中开发新一代控制台应用程序(3)-ASP教程,ASP应用
·DataGrid的多行提交-.NET教程,数据库应用
·ASP.NET 数据绑定常用代码-.NET教程,Asp.Net开发
·.net操纵xml文件类(c#)-.NET教程,C#语言
·随心所欲绘制状态栏-ASP教程,系统相关
·SQL SERVER2005連接字串中的@3/29-.NET教程,数据库应用
·消息队列(Message Queue)简介及其使用-.NET教程,评论及其它
·有关DataGrid显示数据的问题-.NET教程,数据库应用
相关主题
  • 漫谈Java数据库存取技术-JSP教程,Java技巧及代码
  • 漫谈Java数据库存取技术-JSP教程,Java技巧及代码
  • 漫谈Java中的中文问题-JSP教程,Java技巧及代码
  • 漫谈Java中的中文问题-JSP教程,Java技巧及代码
  • 漫谈Java程序设计中的接口应用-JSP教程,Java技巧及代码
  • 西部数码虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭

    网上大名: