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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭荣强 高级黑马   /  2014-4-13 17:35  /  874 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this代表调用的对象,我们老说变量面前省略了this.这个变量应该是成员变量吧?应该不包括局部变量吧,是不是因为成员变量存在于对象。
class inner{
                int x = 0;
                 public void show(){
                         int x =5;
                         System.out.println(this.x);
                 }
         }

4 个回复

倒序浏览
this表示的是它所在函数所属对象的引用。就你代码来看,如果没有this会优先找离自己最近的同名变量进行输出,找不到才会去找类里面的成员。加了this就等于指明了就要是类的成员了。
回复 使用道具 举报
你可以把this.想成全局是全局成员,就你代码来说this.X相当于表示的全局变量x,如果你不写this.X那么他会认为是局部变量x,而如果你局部变量里面没有x,那么这个时候有没有this都认为是全局变量x
回复 使用道具 举报
既然this关键字指向当前类实例的一个引用,相当于代表了一个虚拟的类对象实例。
成员变量随着对象的加载而加载,它的生命周期与对象一致,而局部变量随着方法的调用产生,方法调用结束后消失。
我们见过对象访问成员,在这里就是访问了x=0这个成员变量,却没有见过对象访问方法中的局部变量吧?!
所以只能出现this.成员变量,所以不会出现this.局部变量
回复 使用道具 举报
我还是感觉应该不表示局部吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马