- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 对对象的进一步讨论
到目前为止,我们都是使用简单类型作为方法的参数和返回值。但是,在实际应用中,给对象传递对象并且将对象作为返回值返回不仅是正确的,也是常用的。所以我们有必要在讲解完对象、字段和方法之后,为大家讲解一下如何使用对象作为成员字段、参数以及返回值。
7.1 使用对象作为成员字段
在Java中,我们也可以使用对象作为成员字段。它与基本数据类型作为成员字段其实是类似的,我们也可以定义和初始化对象字段并在方法中调用它。
7.1.1 定义对象字段
要利用对象字段,我们首先应该学习一下如何定义对象字段。对象字段在类中定义,最基本的定义格式如图7.1所示。
7.1.2 对象字段的实例化
我们在使用成员字段时,往往要先对对象字段进行实例化。我们可以像前面初始化数组一样使用new关键字实现对象字段的实例化,也可以使用构造方法对其进行实例化。大部分情况下我们是在声明对象字段时直接完成对象的实例化,如图7.2所示。
7.1.3 对象字段与方法的访问
我们完成了对对象字段的定义和实例化之后就可以对其进行访问了,我们分为对象字段和对象方法两种访问方式,每种方式又包括静态与非静态两种形式。
7.2 使用对象作为方法参数进行传递
我们在第4章中已经学习了参数,但是当时我们传递的参数都是按值传递的。既然我们可是使用对象作为字段,那么我们能否按对象进行传递呢?答案是肯定的。
在这里我们需要注意的是对象传递是通过引用传递的。当我们创建一个类类型的字段时,我们仅仅是创建了一个类的引用。当一个对象引用被传递给方法时,引用本身使用按值调用被传递。其具体的引用流程我们会在后面单独一节为大家讲解。
7.3 使用对象作为方法的返回值
方法能够返回任何类型的数据,包括我们创建的对象类型。
7.4 嵌套类
到目前为止,我们学到的类都是存储在自己的文件中,并且这个文件还是与类名相一致的。其实,在Java中我们还可以在一个类中在创建一个类,并将它们存储在一起,这种类叫做嵌套类。
7.4.1 定义嵌套类
要利用嵌套类,我们首先应该学习一下如何定义嵌套类。嵌套类在一个类中定义,最基本的定义格式如图7.7所示。
7.4.2 嵌套类的使用
我们创建嵌套类的原因是因为被嵌套的类仅仅被它的上一级类所调用。如果将它们组装到一起,可以使它们的关系更好地被理解,而且代码也更加清晰。
也许读者会想,对于嵌套在内部的类,我们可否在外部定义一个类去调用它呢?答案是否定的,这样程序会报错。
7.5 内部类
嵌套类最重要的类型就是内部类。本节我们将为大家介绍内部类,它是Java中一种特殊的类。所谓内部类,就是指在成员内部的类——类的内部,方法的内部等都可以包含类,它们统称为内部类。内部类包括静态嵌套类、成员内部类、方法内部类和匿名内部类四种类型。
7.5.1 静态内部类的定义
如果想创建一个内部类对象而不希望引用外部类的对象,可以把一个内部类定义为static类型的。静态的内部类和其他静态的数据一样也是属于某一个类。下面我们对静态内部类与非静态内部类在数据访问方面做一下比较,如图7.10所示。
7.5.2 静态内部类的使用
在main()方法中,静态内部类不需要创建外部类对象就可以调用其中的变量和方法,方便了外部类对内部类的调用。
7.5.3 成员内部类的定义
成员内部类也是类,所以它具有一般类所具有的全部性质,但是由于它定义在类的内部,Java语法还赋予了它一些特殊的性质。为了使用成员内部类,首先我们来学习如何定义成员内部类。成员内部类的定义方法如图7.10所示。
7.5.4 成员内部类的使用
接下来我们为大家讲解一下成员内部类的使用。首先说明的是,Java中引入内部类主要是为了辅助外部类,所以内部类绝大多数情况下是在外部类的内部使用的。例如,对于外部类outer来说,其内部类inner就是主要在outer内部使用,而不会在外部使用。
7.5.5 局部内部类的定义
内部类不仅可以在类中定义,也可以在方法中定义。局部内部类就是定义在方法中的类,它和局部变量的意思相近。具体的定义语法如图7.14所示。
7.5.6 局部内部类的使用
局部内部类必须先定义后,才能使用,且局部内部类只能够在定义它的方法中使用,出了这个方法,局部内部类就不可见了。
7.6 小结
本章主要是对对象内容的进一步讨论,包括使用对象作为成员字段,成员方法以及嵌套类和内部类的知识。重点是对对象作为成员方法和内部类的理解,难点是方法作为参数和返回值,和内部类两种方法的灵活运用。本章内容是对前面内容的进一步深化,希望大家努力掌握。
文档评论(0)