Java程序案例教程(主编田智、杨艳慈 西安科大版)课件:第5章 类的基本形式04.pptVIP

Java程序案例教程(主编田智、杨艳慈 西安科大版)课件:第5章 类的基本形式04.ppt

  1. 1、本文档共19页,可阅读全部内容。
  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文档。上传文档
查看更多
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的垃圾收集器回收。

您可能关注的文档

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档