类名.this
来源:互联网 发布:haproxy nginx 比较 编辑:程序博客网 时间:2024/05/18 13:25
<span style="font-size: 18px;">public class A { int i = 1; public A() </span>
<span style="font-size: 18px;">{ </span>
<span style="font-size: 18px;"></span><pre class="reply-text mb10" id="content-1091089511" name="code" style="white-space: pre-wrap; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px; font-family: Arial; zoom: 1;"><span style="font-size: 18px;"> public void run()</span>
<span style="font-size: 18px;"> { System.out.println("外部类run");</span>
<span style="font-size: 18px;"> }</span>
<span style="font-size: 18px;"> Thread thread = new Thread() </span>
<span style="font-size: 18px;"> { public void run() </span>
<span style="font-size: 18px;"> { System.out.println("内部类run"); A.this.run();//调用外部类的run方法。</span>
<span style="font-size: 18px;"> } }; </span>
<span style="font-size: 18px;"> this.run();//输出 “外部类run”</span><span style="font-size: 18px;"> thread.start(); } } </span>
<span style="font-size: 18px;">在上面这个例子中, thread是一个匿名类对象,在它的定义中,它的run函数里用到了外部类的run函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的 run 函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用 外部类的类名加上this引用来说明要调用的是外部类的方法run。</span>
0 0