1、定義乙個cat類,如下:
public class cat
public string getname()
public void setname(string name)
public string getcolor()
public void setcolor(string color)
}
2、測試類
public class testcat
}
引入問題:在測試類中,new 出了兩個cat類的例項,並使用cat1與cat2來引用. cat1與cat2所引用的物件會擁有各自的域成員,即(name和color). 但是方法成員在記憶體中只有乙份,當呼叫方法getname()或getcolor()時,程式是如何知道它們所返回的值是cat1所引用的物件還是cat2所引用的物件?
解惑:當使用引用名稱來呼叫方法成員時,程式會將物件的引用告知方法成員,而在方法中所編寫的每乙個或成員會隱含乙個this引用名稱。當呼叫getname()方法時,相當於執行:
public string getname()
因此,當使用cat1呼叫getname()方法時,this所引用的就是cat1所引用的物件;同理,當使用cat2呼叫getname()方法時,this所引用的就是cat2所引用的物件. 這樣就可以正確地返回哪乙個物件的資料! new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
從IL認識關鍵字 二
關鍵字 yield關鍵字。msdn解釋 yield 關鍵字向編譯器指示它所在的方法是迭代器塊。編譯器生成乙個類來實現迭代器塊中表示的行為。在迭代器塊中,yield 關鍵字與 return 關鍵字結合使用,向列舉器物件提供值。yield 關鍵字也可與 break 結合使用,表示迭代結束。其實msdn已...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...