2015-12-30 45 views
-1

定義通用類add()方法(下面顯示的代碼),this.t在做什麼。我的意思是什麼是「this」這個術語?我們沒有在任何地方定義任何名稱爲this的構造函數名稱?這是預定義的對象嗎?通用類方法中的THIS這個術語的含義?

public class Box<T> { 
    private T t; 

    public void add(T t) { 
     this.t = t; // what is " this " term here ? 
    } 

    public T get() { 
     return t; 
    } 

    public static void main(String[] args) { 

     Box<Integer> integerBox = new Box<Integer>(); 
     Box<String> stringBox = new Box<String>(); 

     integerBox.add(new Integer(10)); 
     stringBox.add(new String("Hello World")); 

     System.out.printf("Integer Value :%d\n\n", integerBox.get()); 
     System.out.printf("String Value :%s\n", stringBox.get()); 
    } 
} 
+0

有'this'構造函數,但它指的是當前'Box'實例這裏。 –

+0

'this' refeers對象的實例,因爲參數是't',類的屬性也是使用'this'可以differenciate哪個是哪個 – saljuama

+0

HTTP't',://計算器。 com/questions/2411270/when-should-i-use-this-in-a-class – Pshemo

回答

1
public class Box<T> { 
    private T t; 

    public void add(T t) { 
     this.t = t; // what is " this " term here ? 
    } 

this.t是指的當前Box實例(whitch是實際的私有變量)。基本上這是一個二傳手。你可以閱讀更多關於製片人here。希望這有助於!