A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 490191916 中级黑马   /  2015-12-11 17:08  /  2838 人查看  /  29 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请各位给讲讲这里的this是什么用法和这个整体用法
  1. public class MyBufferdReader{      private Reader r;
  2.       
  3.       public MyBufferdReader(Rdader r){
  4.             this.r=r;      
  5.       }
  6. }
复制代码



29 个回复

倒序浏览
this用于区分成员变量名与参数名
回复 使用道具 举报 1 0
this 就是一个指向对象的引用变量,this.r就相当于person类中有个成员变量是name,Person p = new Person(String name); p.name = name。如果时非静态的成员变量就只能这样调用,用“对象引用变量.成员变量”来调用。如果时静态的那就是“类名.变量”
回复 使用道具 举报
this是一个对象的引用,哪个对象调用就引用谁
回复 使用道具 举报
你这个this是代表 MyBufferdReader类对象,this.r表示这个类对象的属性,参数传过来的r赋值给 MyBufferdReader类的属性r。
回复 使用道具 举报
为了区在分局部变量和参数名相同的情况下,系统识别错误的差别。
回复 使用道具 举报
我认为this就是调用的当前类的当前类里的东西。。。例如当前的this.r就是调用的当前类的成员变量 private Reader r;这句
然后把public MyBufferdReader(Rdader r){这句的r给到成员变量里,通过 this.r=r;      
回复 使用道具 举报
Zrz_K 中级黑马 2015-12-12 19:04:14
8#
this代表对当前对象的引用(谁调用this,this就代表谁)。这段代码的成员变量和局部变量重名,所以用this.r代表成员变量加以区分。
回复 使用道具 举报
this代表的是运行时对象引用。
回复 使用道具 举报
!!!!!
回复 使用道具 举报
hyl 中级黑马 2015-12-12 21:30:30
11#
this 用来区分成员变量和局部变量重名时。
回复 使用道具 举报
局部变量和成员变量同名时,this就表示成员变量
回复 使用道具 举报
局部变量和成员变量同名时,this就表示成员变量
回复 使用道具 举报
hrfhwy 中级黑马 2015-12-13 20:13:14
14#
this堤代表本类对象,哪个对象代表调用它,他就代表哪个对象
回复 使用道具 举报
ash午夜阳光 发表于 2015-12-12 01:56
this是一个对象的引用,哪个对象调用就引用谁

this.r和r哪个是代表成员变量private Reader r?
回复 使用道具 举报
感觉大家的回复虽然很对,但是很乱,对楼主理解起来不方便,所以决定总结一下。首先,这里的用法是this代表当前类中的成员变量,this.r=r 的意思是吧该方法传递进来的 Reader  r 赋值给this.r,也就是复制给成员变量。其次,this除了可以指代当前类的成员变量,还可以用于指代当前对象。
回复 使用道具 举报
this代表本类对象!super代表父类对象
回复 使用道具 举报
this就是当前对象。没有别的。
回复 使用道具 举报
右边的r:传递进来的实际参数;
左边的this.r:  相当于mybufferreader.reader,相当于给对象成员初始化值
回复 使用道具 举报
icm 中级黑马 2015-12-14 22:14:19
20#
this代表当前对象的引用,谁调用它,它就代表谁,可以用来解决成员变量和局部变量重名的问题。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马