java程序设计4_第1页
java程序设计4_第2页
java程序设计4_第3页
java程序设计4_第4页
java程序设计4_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章,接口、抽象类与包,Java程序设计与应用开发(第2版),本节主要内容,接口抽象类包,Java程序设计与应用开发(第2版),4.1接口,4.1.1接口定义接口定义使用的关键字是interface,其格式如下:publicinterfaceInterfaceNameextendsI1,.,Ik/接口声明/接口体,其中可以包含方法声明和常量.接口定义由接口声明和接口体两部分组成。在接口定义中,InterfaceName指定接口名。位于extends关键字后面的I1,Ik就是被继承的接口。由一对花括号括起来的部分是接口体。,Java程序设计与应用开发(第2版),在接口体中,方法声明的常见格式如下:ReturnTypeMethodName(Parameter-List);在Java接口中声明的方法,将隐式地声明为公有的(public)和抽象的(abstract)。由于接口没有为其中声明的方法提供实现,在方法声明后会需要一个分号。接口中定义的变量必须初始化。和类不同,一个Java接口可以继承多个父接口,子接口也可以对父接口的方法和变量进行覆盖。Java接口和类还有一个重要的区别:在Java接口中不存在构建器。,Java程序设计与应用开发(第2版),4.1.2接口的实现,Java接口中声明了一组抽象方法,它构成了实现该接口的不同类共同遵守的约定。在类定义中可以用关键字implements来指定其实现的接口。一个类实现某个接口,就必须为该接口中的所有方法(包括因继承关系得到的方法)提供实现,它也可以直接引用接口中的常量。,Java程序设计与应用开发(第2版),4.1.3接口作为类型,Java接口也是一种数据类型,可以在任何使用其他数据类型的地方使用接口名来表示数据类型。我们可以用接口名来声明一个类变量、一个方法的形参或者一个局部变量。用接口名声明的引用型变量,可以指向实现该接口的任意类的对象。,Java程序设计与应用开发(第2版),4.1.4接口不应改变,一个接口声明了方法,但没有实现它们。用户想修改某个接口,为其添加一个方法,这个简单的修改可能会造成牵一发而动全身的局面:所有实现这个接口的类都将无法工作,因为现在它们已经不再实现这个接口了。用户要么放弃对这个接口的修改,要么连同修改所有实现这个接口的所有类。,Java程序设计与应用开发(第2版),4.2抽象类,4.2.1抽象方法抽象方法(abstractmethod)在形式上就是包含abstract修饰符的方法声明,它没有方法体,也就是没有实现方法。抽象方法的声明格式如下:abstractreturnTypeabstractMethodName(paramlist);抽象方法只能出现在抽象类中。如果一个类中含有抽象方法,那么该类也必须声明为抽象的,否则在编译时编译器会报错。,Java程序设计与应用开发(第2版),4.2.2抽象类,定义一个抽象类需要关键字abstract,其基本格式如下:abstractclassClassName.抽象类不能被实例化,在程序中如果试图创建一个抽象类的对象,编译时Java编译器会提示出错。抽象类中最常见的成员就是抽象方法。抽象类中也可以包含供所有子类共享的非抽象的成员变量和成员方法。继承抽象类的非抽象子类只需要实现其中的抽象方法,对于非抽象方法既可以直接继承,也可以重新覆盖。,Java程序设计与应用开发(第2版),4.2.3抽象类和接口的比较,抽象类在Java语言中体现了一种继承关系,要想使得继承关系合理,抽象类和继承类之间必须存在“是一个(isa)”关系,即抽象类和继承类在本质上应该是相同的。而对于接口来说,并不要求接口和接口实现者在本质上是一致的,接口实现者只是实现了接口定义的行为而已。在Java中,按照继承关系,所有的类形成了一个树型的层次结构,抽象类位于这个层次中的某个位置。接口不存在于这种树型的层次结构中,位于树型结构中任何位置的任何类都可以实现一个或者多个不相干的接口。,Java程序设计与应用开发(第2版),例,Java程序设计与应用开发(第2版),4.3包,4.3.1包的作用包(package)是一组相关类和接口的集合,通常称为“类库”。包的作用是将实现某方面功能的一组类和接口集合为包进行发布。语言包(java.lang)实用程序包(java.util)输入输出包(java.io)网络包()抽象图形用户接口包(javax.swing)包声明格式如下:packagepackageName;,Java程序设计与应用开发(第2版),4.3.2包命名,包是实现某方面功能的程序集合,因此一个有意义的包名应该体现包的功能。包名的唯一性问题。各公司组织达成一个约定,在他们的包名称中使用自己的Internet域名的反序形式。在一个公司内部可能还会存在冲突,这需要公司内部的软件规范来解决,通常可以在公司名称后面增加项目的名称来解决。Java平台采用层次化的文件系统来管理Java源文件和类文件。Java包名称的每个部分对应一层子目录。,Java程序设计与应用开发(第2版),4.3.3包的使用,一个包中的public类或public接口可以被包外

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论