- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 接口与内部类 在学习了类、对象和继承后,本章学习Java中2个较为高级的技术:接口和内部类。Java中的接口是Java灵活性的基石,主要用来描述类可以具有什么样的功能,但并不给出每个功能的具体实现。内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,是依附于外部类而存在的。在编写图形类接口的时候,内部类有助于写出专业高效的代码。 5.1 接口的特性 Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征,没有方法的实现。因此,这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为或者功能。 在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及抛出的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载关系。但在Java编译器检查方法的置换时,则会进一步检查返回类型和抛出的异常是否相同。 5.2 接口的定义 当定义一个接口时,实际上是在编写一个合约,该合约规定了用来描述实现该接口的类能够做什么,能够充当什么样的角色。而接口中并没有功能的具体实现,具体实现由签了合约的类自己来完成,但实现时必须满足接口中的要求。 例如,可以编写一个接口aerocraft,代表飞行器的角色。在该接口中定义了飞行器起飞方法。这样,具有飞行器功能的所有类都可以实现该接口,并具体实现接口中的方法,不同的类可以有不同的方法实现。声明接口的基本语法如下。 访问限制修饰符 [abstract] interface 接口名 { //方法与成员变量的声明 } 5.3 接口的使用 在学习了如何定义接口后,本节将详细介绍接口的实现,包括接口实现的基本语法、接口中方法的实现与使用。 5.3.1 接口实现的基本语法 实现接口时,需要使用关键字implements,该关键字指定该类实现接口,基本语法如下。 class 类名 implements 接口名列表 接口名列表中可以有多个接口名,因为接口代表的是角色,一个类可以扮演多个角色,下面给出了一个合法的接口实现的代码片段。 1 //Employee接口 2 public interface Employee 3 {} 4 //manager接口 5 public interface Manager 6 {} 7 // Person类实现了Employeer与Manager接口 10 public class Person implements Developer,Lecturer 5.3.2 接口中方法的实现与使用 类的继承使得开发人员可以处理同类的事物,但不能处理不同类但具有相同功能的事物。接口能够被很多不同的类实现,但接口中定义的方法仅仅是实现某一特定功能的规范,而并没有真正实现这些功能。这些功能都需要在实现该接口的类中完成。 例如,直升机与民航客机都可以充当飞行器(Aerocraft)这个角色,但直升机与民航客机没有任何继承关系,但是直升机与民航客机通过实现Flyer接口,使得二者都能够作为飞行器进行处理。因为类对接口的实现有上述含义,因此当一个类实现了某个接口,其应当为该接口中的所有方法提供具体实现,除非该类为抽象类, 5.4 接口与抽象类 到目前为止,看起来接口与抽象类很像,它们里面都有抽象的方法,都不能实例化。甚至有的读者会想,既然这么像,只要一种不是更好。但其实它们的含义及其想解决的问题都是截然不同的,本节将从两个方面介绍它们之间的区别。 1.语法上的不同 2.具体含义的不同 5.5 接口与回调 回调是一种常见的程序设计模式,利用回调技术可以处理这样的问题,事件A发生时要执行处理事件A的代码,判断何时发生事件A及何时执行处理的代码。这些代码是固定的,先行编写完毕,供使用。但事件A的处理代码开放给其他开发人员编写,可以有很多不同的实现,使用时可以注册具体需要的实现来处理。 Java中Swing与AWT的事件监听处理模型就是使用接口与回调实现的,学习了第8章内容后可以进一步体会接口与回调带来的好处。在这里举一个简单的例子来说明这个问题, 5.6 内 部 类 前面章节已经介绍了Java中类或对象的成员,包括方法、成员变量和语句块。其实类不但有这些类型的成员,也可以作为另一个类的成员。充当这种角色的类称为内部类,包含内部类的类称为外部类,使用内部类可以完成很多特殊的任务,本节将介绍与内部类有关的内容。 5.6.1 内部类概述 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,依附于外部类而存在。内部类可为静态,可用protected和private修饰(而外部类只能使用public和protected的包访问权限)。内部类主要有以
您可能关注的文档
- 新Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 段新娥 贾宗维 2_ chap9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 java9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 Java11.ppt
- 新Java程序设计教程 教学课件 张克军 陆迟 孙海伦 庞丽娜 第10章 网络程序设计.ppt
- 新Java程序设计教程 项目式 教学课件 李桂玲 P1 1 1程序的运行环境.ppt
- 新Java程序设计实例教程教学课件 刘志成 ch05_Java图形用户界面技术.PPT
- 新Java程序设计实例教程教学课件 刘志成 ch07_Java输入输出技术.PPT
- 新Java程序设计实验指导与习题解答 工业和信息化普通高等教育“十二五”规划教材 教学课件 李荣 段新娥 chap9.ppt
- 新Java程序设计实用教程 教学课件 耿祥义 张跃平 Java程序设计实用教程_第14章_Java网络编程.ppt
- 新Java程序设计实用教程 教学课件 耿祥义 张跃平 Java程序设计实用教程_第16章_Java Applet程序.ppt
最近下载
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案).pdf VIP
- 2024届福建省莆田市高三第二次教学质量检测二模生物试卷.doc VIP
- 电梯维修及维护人员的安全知识与技能培训课件.pptx VIP
- 小学新教育实验实施方案(详细).docx
- 23中英文双语单片机车辆防碰撞外文文献翻译:基于超声波与单片机嵌入式系统开发集成应用的汽车防撞系统设计.doc VIP
- 八年级数学上册《分式》教案教材分析.pdf VIP
- 大华DSS5000系列-客户端操作手册-.docx
- 2013款上汽通用别克君越_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 人教版数学二年级下册全册教学课件(2023年新教材).pptx
- 越人歌-钢琴伴奏谱.pdf
文档评论(0)