this 只有在類例項化後才有意義

2021-09-11 15:05:04 字數 683 閱讀 4838

1.this&super

什麼是this,this是自身的乙個物件,代表物件本身,可以理解為:指向物件本身的乙個指標。當你想要引用當前物件的某種東西,比如當前物件的某個方法,或當前物件的某個成員,你便可以利用this來實現這個目的。要注意的是this只能在類中的非靜態方法中使用,靜態方法和靜態的**塊中絕對不能出現this。his也可作為建構函式來使用。在後面可以看到

而什麼是super,可以理解為是指向自己超(父)類物件的乙個指標,而這個超類指的是離自己最近的乙個父類。super的作用同樣是可以作為建構函式使用,或者是獲取被區域性變數遮蔽掉的父類物件的某個同名變數的值。

this 關鍵字用來表示當前物件本身,或當前類的乙個例項,通過 this 可以呼叫本物件的所有方法和屬性。

例如:public class demo

public static void main(string args)

執行結果:x + y = 25

上面的程式中,obj 是 demo 類的乙個例項,this 與 obj 等價,執行 int z = this.x + this.y;,就相當於執行 int z = obj.x + obj.y;。

注意:this 只有在類例項化後才有意義;

成員變數與方法內部的變數重名時,希望在方法內部呼叫成員變數,怎麼辦呢?這時候只能使用this;

例如:

C 類模板在何時例項化?

影響中的一道筆試題,總結了下模板類只宣告未定義時,在哪些情況會出現編譯錯誤。1 直接例項化物件 只是宣告則不會出錯 無論用棧還是new,編譯時都會出錯。2 函式定義 只是宣告則不會編譯錯誤 中引數或返回值引用例項化該模板物件時,非引用和傳指標,編譯時會出錯。總結 定義中直接使用類模板的例項模板類而非...

Python語言的類例項化後的類內資料的私有和公有

首先說這個特性有些坑爹,在周五耗掉了我大半天來弄懂了這個問題 之前關鍵是不知道怎麼描述這個問題 另外我寫python喜歡寫分號 見笑了 先說結論結論就是,私有變數的寫法 class obj object docstring for obj def init self,arg super obj,se...

C 類的例項化後佔記憶體的大小計算

閆一偉 2010 04 06 在初學物件導向的程式語言時,很多人或多或少的都有些疑問,為什麼寫出來的 與最終生編譯成的 大相徑庭呢?我們並不知道編譯器在後台做了什麼工作,這些都是由於我們僅停留在語言層的原因,所謂語言層就是會一些基本的語法法則,但並不知道要為什麼這麼做。下面就介紹下編譯器這方面的乙個...