类名.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
原创粉丝点击