- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.4 在类内部调用方法 在一个Java程序中是可以通过对象去调用类中的方法的,当然类的内部也能互相调用各自的方法。例如,下面的程序修改自以前的程序代码,新增加了一个公有的say()方法,并用这个方法去调用私有的talk()方法。 【例5-9】 TestPersonDemo5.java。 输出结果: 我是:张三,今年:30岁 程序说明: (1) 第9~12行声明公有方法say(),此方法用于调用类内部的私有方法talk()。 (2) 第42行调用Person类中的say()方法,其实也就是调用Person类中的talk()方法。 5.5 引用数据类型的传递 Java中使用引用来取代C++?中的指针,那么什么是引用呢?Java又是怎样通过引用来取代C++?中的指针的呢? 【例5-10】 TestRefDemo1.java。 程序说明: (1) 第1~5行声明Person 类,有name 与age两个属性。 (2) 第11、13行分别声明两个Person的对象p1和p2,但这两个对象在声明时都同时赋值为null,表示此对象未实例化。 (3) 第15行对对象p1进行实例化。 (4) 第17、18行分别为p1对象中的属性赋值。 (5) 第20行将p1的引用赋给p2,此时相当于p1与p2都同时指向同一块堆内存。 (6) 第22、23行分别调用p2.name和p2.age,输出p2对象中的属性。 (7) 第24行把p1对象赋值为null,表示此对象不再引用任何内存空间。 程序执行到第24行时,实际上p1断开了对其之前实例化对象的引用,而p2则继续指向p1原先的引用。 由上述程序可以看出,在程序中并未用new关键字为对象p2实例化,到最后依然可以用p2.name与p2.age方式输出属性的内容,且内容与p1对象中的内容相似。也就是说,在上述程序中p2是通过p1对象实例化的,或者说p1将其自身的引用传递给了p2,如图5-7所示。 图5-7 引用数据类型的传递 如果在程序最后又加了一段代码,令p2=null,则之前由p1创建的实例化对象不再有任何对象使用它,此对象称为垃圾对象,如图5-8所示。 图 5-8 垃圾对象的产生 所谓垃圾对象,就是指程序中不再使用的对象引用。 【例5-11】 TestRefDemo2.java。 程序说明: (1) 第1~4行声明一个名为Change的类,其有一个属性x。 (2) 第9行实例化了一个Change类的对象c。 (3) 第10行将对象c中的x属性赋值为20。 (4) 第11行调用fun()方法将对象c传递到方法中。 (5) 第14~17行声明fun方法,接收参数类型为Change类型。 (6) 第16行将对象c1中的x属性赋值为25。 程序最后的输出结果为“x = 25”,而程序只有在fun()方法中才将x的值赋为25,为什么方法完成之后值依然被保留了下来呢?读者可以发现在程序第14行,fun()方法接收的参数是Change c1,也就是说fun()方法接收的是一个对象的引 用。所以在fun方法中所做的操作会影响原先的参数。可以参考图5-9来了解整个过程。 图5-9 操作过程 5.6 匿 名 对 象 顾名思义,匿名对象就是没有明确声明的对象。读者也可以简单地理解为只使用一次的对象,即没有任何一个具体的对象名称引用它。 【例5-12】 TestNoName.java。 程序说明: (1) 第1~9行声明了Person类,其有name与age两个私有属性,并分别赋了初值。 (2) 第14行声明了Person匿名对象,调用Person类中的talk()方法。 从程序中可以看出,用new Person()声明的对象并没有赋给任何一个Person类对象的引用,所以此对象只使用了一次,之后就会被Java的垃圾收集器回收。
您可能关注的文档
- 2015金属焊接切割作业(劳动版)教学课件:电弧焊焊接设备和工具 .ppt
- 2015金属焊接切割作业(劳动版)教学课件:金属焊接和切割 .ppt
- 2015金属结构设计(华科版)课件:绪论(用) .ppt
- 2015金属融化焊基础(机工版)课件:工程结构用钢.ppt
- 2015金属融化焊基础(机工版)课件:有害元素对焊缝金属的作用及其控制.ppt
- 2015金属融化焊基础(机工版)课件:淬火与回火.ppt
- 2015金属融化焊基础(机工版)课件:焊 剂.ppt
- 2015金属工艺学(冶金版)课件:金属液态成形(铸造)的概念.ppt
- 2015金属融化焊基础(机工版)课件:焊接热影响区.ppt
- 2015金属融化焊基础(机工版)课件:焊接热过程.ppt
- 2025年长沙银行浏阳支行社会招聘考试备考题库及答案解析.docx
- 2025年浙商银行成都分行社会招聘考试备考题库及答案解析.docx
- 2025中国农业科学院烟草研究所高层次人才招聘5人考试备考题库及答案解析.docx
- 2025中国冶金地质总局二局 国冶二局(福建)集团有限公司招聘10人考试备考题库及答案解析.docx
- 2025中国宗教杂志社招聘3人考试备考题库及答案解析.docx
- 2025年长沙银行益阳支行社会招聘考试备考题库及答案解析.docx
- 2025中国农业科学院农田灌溉研究所第二批招聘14人(河南)考试备考题库及答案解析.docx
- 2025中国农业科学院郑州果树研究所青年英才招聘3人考试备考题库及答案解析.docx
- 【统编版】高中语文必修上册第1单元2.1《立在地球边上放号》精美课件(23张PPT).pptx
- 【统编版】高一语文必修上册第一单元2.1《立在地球边上放号》优质课(26张PPT)课件.pptx
最近下载
- 绿化养护方案(同名6533).doc VIP
- T∕ZZB 1894-2020 双平臂落地抱杆.pdf VIP
- (2024)反洗钱知识竞赛题库(含答案).pptx VIP
- 4-输电线路工程质量强制性条文执行记录表.doc VIP
- 回忆鲁迅先生教案.docx VIP
- 计算机日常使用维护培训ppt课件.pptx VIP
- GB50204-2015 《混凝土结构工程施工质量验收规范》GB50204-2015 (1).docx VIP
- 2025年4月20日四川省事业单位考试《公共基础知识》试题及答案解析参考.pdf
- 《2#空压机站施工组织设计》.doc
- 13J933-2 体育场地与设施(二).docx VIP
文档评论(0)