1. 程式人生 > >淺談Java中的this用法

淺談Java中的this用法

基本用法

1.  this.變數名代表當前物件的成員變數。this.方法名代表當前物件的成員方法。this代表當前物件。

2. 當在內部類或匿名類中時,this代表其所在的內部類或匿名類,如果要用外部類的方法和變數,則加上外部類的類名。例如:

public class HelloB {
    int i = 1;
 
    public HelloB() {
       Thread thread = new Thread() {
           public void run() {
              for (int j=0;j<20;j++) {
                  HelloB.this.run();//呼叫外部類的方法
                  try {
                     sleep(1000);
                  } catch (InterruptedException ie) {
                  }
              }
           }
       }; // 注意這裡有分號
       thread.start();
    }
 
    public void run() {
       System.out.println("i = " + i);
       i++;
    }
   
    public static void main(String[] args) throws Exception {
       new HelloB();
    }
}

上述程式碼轉自 https://www.cnblogs.com/nolonely/p/5916602.html

上述程式碼表明在匿名類中如想使用外部類的方法,就在this前面加外部類名就可以引用外部類的方法,this此時代表當前匿名類thread。

3.  在建構函式中,通過this可以呼叫同一類中別的建構函式,當要注意一下幾點:

     a. 在建構函式中呼叫時,this必須寫在首行位置

     b. 在一個建構函式中只能使用this呼叫一次別的建構函式

     c .在非建構函式中不能使用this呼叫建構函式