第7章 抽象类与接口.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2019/5/2 31 第一种方案: abstract class Door1{ abstract void open (); abstract void close (); abstract void alarm () ; } interface Door2{ void open (); void close (); void alarm (); } 看起来好像使用抽象类和接口没有大的区别。 如果现在要求 Door 还要具有报警的功能。我们 该如何设计针对该例子的类呢? 2019/5/2 32 那么具有报警功能的 AlarmDoor 的定义方式如下: class AlarmDoor extends Door1{ void open () {} void close () {} void alarm () {} } 或者 class AlarmDoor implements Door2{ void open () {} void close () {} void alarm () {} } 但是,在我们实际生活中,不是所有的门都必 须具备报警功能。因此,在 Door 的定义中把 Door 概念本身固有的行为方法和另一个概念 “报警器”的行为方法混在一起,导致概念上的错误。 第二种方案: abstract class Door1{ abstract void open (); abstract void close (); } interface Door2{ void alarm (); } 4. 包的声明和引入 ? 在 Java 语言系统中, Java 编译器为每一个类 生成一个字节码文件(或称 .class 文件、或类 文件)。 ? 为了对类文件进行分层和按用途分类管理, 同时也为了解决相同类名的文件冲突的问题, Java 提供了包机制来管理类名空间。 ? 一般情况下,应将相关的类组织到同一个包 中。 ? 包名本身就是一个目录,包和它所包含的 包(子包)之间用句点 (.) 分开,以表明包 的层次目录结构。 ? Java 使用文件系统来存储包和类,包名就 是文件夹名,即目录名,类名就是文件名。 ? 一个包可以包含若干个类(字节码)文件, 还可以再包含若干个包。 ? 包被放在当前目录或指定目录下,该指定 目录要在操作系统环境变量表中的 classpath 参数的值中,以便系统能够搜索 到该指定目录下的包和包中的类文件。 ? 声明包 : ? 在编写 Java 源程序时,对一个 Java 程序文件 (即 .java 文件,或称为一个编译单元),可 以使用声明包(包含包、定义包)的语句指 定其中每个类的字节码文件所属的包。 ? 声明包语句的关键字为 package ,后面跟着包名 或包的层次目录名,该语句若存在则必须是 Java 程序文件中的第一条语句 。 ? 该程序文件被编译之后,就把其中每个类的字节 码文件保存到指定的包中。 ? 若一个 Java 程序文件不带有声明包的语句,则其 中每个类的字节码文件被保存到当前目录中,即 被编译的 Java 程序文件所在的目录中。 ? 引入包 : ? 向程序中引入包的语句关键字为 import ,后面跟着 包名和类名,包名和类名之间也必须用句点分开。 ? 若需要引入包中所有的类(字节码文件),则用星 号 (*) 代替类名。如“ import java.io.*;” 语句就向所 在的 Java 程序文件中引入了 java.io 包中的所有类。 ? 引入包语句 import 必须出现在声明包语句 package 之 后和所有类定义模块之前的位置。 ? 在一个 Java 程序文件中,系统将自动引入 java.lang 包中的所有类,相当于用户在程序开 始添加了一条“ import java.lang.*;” 语句。 ? 在 java.lang 包中包含有常用的系统类,如字符 串类 String 、基本数据类型的包装类( Integer 、 Double 、 Character 、 Boolean 等)、数学函数 类 Math 、系统基类 Object 、系统状态类 System 、等等。 ? Java 系统类库中包含有各种用途的包,如进 行文件操作的 io 包、进行网络应用的 net

文档评论(0)

wq1987 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档