在java中类名.this得到的是什么?

Python010

在java中类名.this得到的是什么?,第1张

这个一般在内部类里面用。。类名.this表示 那个类名所代表的类的对象。。。

比如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指的是这个对象自己。