- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象基础_引用传递this的使用
09. 面向对象基础(04) 本季主要知识点:引用传递 this关键字。 本季开头先讲解了三种引用传递的范例帮助读者加强对引用传递的理 解,之后重点阐述了this关键字的使用及对象的比较操作实现方式。 blog: HYPERLINK /27212/122802 \t /_blank [零基础学JAVA]Java SE面向对象部分-09.面向对象基础(04)
上季内容回顾:?String类?· 不可改变?· 要使用直接赋值的方式?· 一个字符串就是一个String类的匿名对象?· String类的相关操作方法
本季主要知识点:
引用传递
this关键字
本季开头先讲解了三种引用传递的范例帮助读者加强对引用传递的理解,之后重点阐述了this关键字的使用及对象的比较操作实现方式。
引用传递
类是引用数据类型,则传递的是一个地址。
方法的参数传递
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299357ZEQ4.png \* MERGEFORMATINET
我们来看个实例ooDemo01:
INCLUDEPICTURE \d /attachment/200812/26/27212_12302993597roe.png \* MERGEFORMATINET
输出的值为60
INCLUDEPICTURE \d /attachment/200812/26/27212_123029936016xp.png \* MERGEFORMATINET
我们来分析下这个实例的内存操作哈~
首先是M m=new M();代码
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299361qgmg.png \* MERGEFORMATINET
然后是m.x=30;赋值
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299361Il2k.png \* MERGEFORMATINET
其后fun(m);调用fun()方法,在fun()方法中将对象m的地址赋值给m1
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299743eROY.png \* MERGEFORMATINET
接着m1.x=60;代码修改了堆内存中x的值为60。
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299744xg0R.png \* MERGEFORMATINET
public static void fun(M m1)???? {???????? m1.x=60;???? }现在这个方法调用完了,m1对堆内存中的连接已经断开了。
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299745zLi7.png \* MERGEFORMATINET
现在虽然m1对x属性断开了引用,但是在堆内存所作的改动已经被保存下来了哈~所以打印输出m.x时值为60。
我们再来看个实例ooDemo03:
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299747FIVa.png \* MERGEFORMATINET
输出结果是abc
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299747kWI1.png \* MERGEFORMATINET
我们还是来分析下内存操作哈:
首先String str=abc;
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299748nsfD.png \* MERGEFORMATINET
fun(str);调用fun()方法,将str的地址指定s
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299748lGpO.png \* MERGEFORMATINET
关键一步来了哈~s=bcd;将bcd赋值给s,我们上次已经说过了,一个对象不可能有两个地址的引用哈,所以在“bcd”赋值之前,对象s要先断开与“abc”的指向,才能与“bcd”建立连接。
INCLUDEPICTURE \d /attachment/200812/26/27212_1230299749Dxo8.png \* MERGEFORMATINET
然
文档评论(0)