比如class A {
public void method(){
A.this就是表示A的对象。。在这种情况下和this是一样的
}
class B {
void method1() {
A.this还是表示A的对象。。但是这里是在内部类里面。。所以这里的this就是内部类B的对象了。。但是我们经常会在内部类里面调用外部的东西。。所以就用A.this这种方式就行了
}
}
}
有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:public
class
A
{
int
i
=
1
public
A()
{
Thread
thread
=
new
Thread()
{
public
void
run()
{
System.out.println("内部类run")
A.this.run()//调用外部类的run方法,输出
外部类run
}
this.run()//调用内部类的run方法
thread.start()
}
public
void
run()
{
System.out.println("外部类run")
}
}
在上面这个例子中,
thread是一个匿名类对象,在它的定义中,它的run函数里用到了外部类的run函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的
run
函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用
外部类的类名加上this引用来说明要调用的是外部类的方法run。
this指当前类的对象。类名.this这种写法不提倡,画蛇添足。可用直接用this代替。
有区别!类的对象可用有多个。每个对象都有一个this,这个this指的是这个对象自己。