一般,咱們說的this表示的是"當前對象",簡單的說說this使用須要注意的地方,溫故而知新嘛。java
①若是一個類有多個構造方法,那麼能夠在一個構造方法裏面經過this調用另一個構造方法。如: 函數
public ThisTest(){ System.out.println("經過this()方法調用ThisTest()構造器!"); } public ThisTest(int i ){ //調用無參構造器 this(); System.out.println("i="+i); }
②若爲其賦予一個參數的話,this關鍵字就會自動匹配參數相同的構造方法。如this
public ThisTest(String str){ //TODO } public ThisTest(int i){ System.out.println("若是this關鍵字附帶參數,就會自動匹配與之相同的構造器"); } public ThisTest(int i ){ this(i); //this關鍵字自動匹配形參相同的構造器 }
③同一個構造方法裏面不能有兩次this調用。如:code
public ThisTest(){ System.out.print("-------------------"); } public ThisTest(int i){ System.out.println("i="+i); } public ThisTest(int i ){ this(); // this(i); //同一個構造器裏面不能有兩次this調用 }
④不能在構造方法以外任何方法裏面使用this來調用構造函數。如:對象
public ThisTest(int i){ System.out.println("i="+i); } private void f(int i ){ // this(i); //在方法中不能經過this關鍵字來調用構造函數 } public static void main(String[] args){ // this(); //在main方法中也不能經過this來調用構造函數 }
⑤方法中沒必要經過this來調用另外一個方法。如:class
public void _f(int i){ //TODO } public void f(int i ){ // this._f(i); //方法中沒必要經過this關鍵字來調用另一個方法 _f(i); //而是直接調用 }
⑥經過this.只能調用類的成員變量。如:變量
public class ThisTest{ private String m ; public ThisTest(String m){ this.m = m; //this只能引用成員變量,即使是局部參數和成員參數名相同 } public ThisTest(String n){ // this.n; //這是錯誤的引用 } }