淺談Java中的this用法
阿新 • • 發佈:2018-11-14
基本用法
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呼叫建構函式