黑马程序员技术交流社区
标题:
问个this 小问题。
[打印本页]
作者:
谭荣强
时间:
2014-4-13 17:35
标题:
问个this 小问题。
this代表调用的对象,我们老说变量面前省略了this.这个变量应该是成员变量吧?应该不包括局部变量吧,是不是因为成员变量存在于对象。
class inner{
int x = 0;
public void show(){
int x =5;
System.out.println(this.x);
}
}
作者:
你为谁归来
时间:
2014-4-13 17:58
this表示的是它所在函数所属对象的引用。就你代码来看,如果没有this会优先找离自己最近的同名变量进行输出,找不到才会去找类里面的成员。加了this就等于指明了就要是类的成员了。
作者:
ilvsoft
时间:
2014-4-13 19:47
你可以把this.想成全局是全局成员,就你代码来说this.X相当于表示的全局变量x,如果你不写this.X那么他会认为是局部变量x,而如果你局部变量里面没有x,那么这个时候有没有this都认为是全局变量x
作者:
Shimano
时间:
2014-4-13 23:42
既然this关键字指向当前类实例的一个引用,相当于代表了一个虚拟的类对象实例。
成员变量随着对象的加载而加载,它的生命周期与对象一致,而局部变量随着方法的调用产生,方法调用结束后消失。
我们见过对象访问成员,在这里就是访问了x=0这个成员变量,却没有见过对象访问方法中的局部变量吧?!
所以只能出现this.成员变量,所以不会出现this.局部变量
作者:
谭荣强
时间:
2014-4-14 10:34
我还是感觉应该不表示局部吧。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2