this变量的问题?
如下代码:
class A
{
String name;
public A(String x)
{
name=x;
}
public void func1()
{
System.out.println("func1 of " +name+"is calling");
}
public void func2()
{
A a2=new A("a2");
this.func1();
a2.func1();
}
}
class testA
{
public static void main(String [] args)
{
A a1=new A("a1");
a1.func2();
}
}
此代码的运行结果是:
func1 of a1 is calling
func1 of a2 is calling
我的问题是:
此时的变量this,应用的是a1 还是 a2 ,如果应用的是a1,为什么不是a2 .
----------------解决方案--------------------------------------------------------
this就是表示正在操作的对象,也就是表示a1!!
好像没有理由哦!this定义本如此!!
----------------解决方案--------------------------------------------------------
哪个实例调用了(包含使用this)类的成员函数,this指代的就是这个实例.
----------------解决方案--------------------------------------------------------
this指向的是当前对象,函数func2()是被a1调用,也就是说a1是当前对象
----------------解决方案--------------------------------------------------------