第04章面向对象下.pptVIP

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

4.6包(package)4.6.1包的定义与使用为了便于对硬盘上的文件进行管理,通常都会将文件分目录进行存放。同理,在程序开发中,也需要将编写的类分目录存放便于管理,为此,Java引入了包(package)机制,程序可以通过声明包的方式对Java类定义目录。Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。在声明包时,使用package语句,具体示例如下:需要注意的是,包的声明只能位于Java源文件的第一行。第61页,共86页,星期日,2025年,2月5日4.4多态4.4.2对象的类型转换将例程4-14中的animalShout()方法进行修改,具体代码如下:第29页,共86页,星期日,2025年,2月5日4.4多态4.4.2对象的类型转换需要注意的是,在进行类型转换时也可能出现错误,例如在例程4-14中调用animalShout()方法时传入一个Dog类型的对象,这时进行强制类型转换就会出现出错,如例程4-15所示。出错的原因是,在调用animalShout()方法时,传入一个Dog对象,在强制类型转换时,Animal类型的变量无法强转为Cat类型。第30页,共86页,星期日,2025年,2月5日4.4多态4.4.2对象的类型转换针对这种情况,Java提供了一个关键字instanceof,它可以判断一个对象是否为某个类(或接口)的实例或者子类实例,语法格式如下:接下来对例程4-15的animalShout()方法进行修改,具体代码如下:第31页,共86页,星期日,2025年,2月5日4.4多态4.4.3Object类在JDK中提供了一个Object类,它是所有类的父类,即每个类都直接或间接继承自该类。先来看一个例子,如例程4-16所示。第32页,共86页,星期日,2025年,2月5日4.4多态4.4.3Object类因为Animal默认继承自Object类,在Object类中定义了toString()方法,在该方法中输出了对象的基本信息,Object类的toString()方法中的代码具体如下:getClass().getName()代表返回对象所属类的类名,即Animal。hashCode()代表返回该对象的哈希值。Integer.toHexString(hashCode())代表将对象的哈希值用16进制表示。其中,hashCode()是Object类中定义的一个方法,这个方法将对象的内存地址进行哈希运算,返回一个int类型的哈希值。第33页,共86页,星期日,2025年,2月5日4.4多态4.4.3Object类在实际开发中,通常希望对象的toString()方法返回的不仅仅是基本信息,而是一些特有的信息,这时重写Object的toString()方法便可以实现,如例程4-17所示。第34页,共86页,星期日,2025年,2月5日4.4多态4.4.4匿名内部类前面多态的讲解中,如果方法的参数被定义为一个接口类型,那么就需要定义一个类来实现接口,并根据该类进行对象实例化。除此之外,还可以使用匿名内部类来实现接口。为了让初学者能更好地理解什么是匿名内部类,接下来首先将例程4-13改为内部类的方式进行实现,如例程4-18所示。第35页,共86页,星期日,2025年,2月5日4.4多态4.4.4匿名内部类首先看一下匿名内部类的格式,具体如下。接下来对例程4-18进行改写,如例程4-19所示。第36页,共86页,星期日,2025年,2月5日4.4多态4.4.4匿名内部类对于初学者而言,可能会觉得匿名内部类的写法比较难理解,接下来分两步来编写匿名内部类,具体如下:1、在调用animalShout()方法时,在方法的参数位置写上newAnimal(){},这相当于创建了一个实例对象,并将对象作为参数传给animalShout()方法。在newAnimal()后面有一对大括号,表示创建的对象为Animal的子类实例,该子类是匿名的。具体代码如下所示:第37页,共86页,星期日,2025年,2月5日4.4多态4.4.4匿名内部类对于初学者而言,可能会觉得匿名内部类的写法比较难理解,接下来分两步来编写匿名内部类,具体如下:第38页,共86页,星期日,2025年,2月5日?多学一招4.4.4匿名内部类接口在面向对象的设计与编程中应用的非常广泛,特别是实现软件模块间的插接方面有着巨大的优势。我们在北京中关村的电子市场随便挑选了一块计算机主板和一块PCI卡(网卡、声卡等),结果,这块PCI卡能够很好地利用到这块主板上,虽然主板厂商

文档评论(0)

xiaoyao2022 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档