1. 程式人生 > >Java中物件的this引用

Java中物件的this引用

        Java提供了一個this關鍵字,this關鍵字總是指向呼叫該方法的物件。根據this出現位置的不同,this作為物件的預設引用有兩種情形。

-構造器中引用該構造器正在初始化的物件

-在方法中引用呼叫該方法的物件

        this關鍵字最大的作用就是讓類中一個方法,訪問該類裡的另一個方法或例項變數。

        this可以代表任何物件,當this出現在某個方法體中時,它所代表的物件是不確定的,但它的型別是確定的:它所代表的只能是當前類的例項;只有當這個方法被呼叫時,它所代表的物件才被確定下來:誰在呼叫這個方法,this就代表誰。

        對於static修飾的方法而言,則可以使用類來直接呼叫該方法,如果在static修飾的方法中使用this關鍵字,則這個關鍵字就無法指向合適的物件。所以,static修飾的方法中不能使用this引用。由於static修飾的方法不能使用this引用,所以static修飾的方法不能訪問不使用static修飾的普通成員,因此Java語法規定:靜態成員不能直接訪問非靜態成員。

        同一個類的一個方法呼叫另外一個方法時,如果被調方法是普通方法,則預設使用this作為呼叫者;如果被調方法是靜態方法,則預設使用類作為呼叫者。