(1)this呼叫本類中的屬性,也就是類中的成員變數;
(2)this呼叫本類中的其他方法;
(3)this呼叫本類中的其他構造方法,呼叫時要放在構造方法的首行。
第乙個怎麼理解呢?
舉個例子,當我們要給物件的某些屬性賦值的時候
public class thisdemo
}class student
@override
public string tostring()
}---------------------
原文:
列印結果:student [ name=null, age=0],賦值沒有成功,這是為什麼呢。因為在方法中使用的name都是方法內部自己定義的形參,這時候外部定義的引數被暫時的覆蓋了。name=name這句話是把形參name的值又賦給形參name,因為值傳遞,所以這個值對實參的值沒有影響,所以不會改變實參的值。
說明:name(區域性變數)=name(區域性變數);
而不是name(成員變數)=name(區域性變數);
如果形參和實參的名字不一樣,就不用加this,不然就要加this,這裡用this表示當前物件的值,this.實參,表示呼叫這個構造方法的物件的屬性。this.實參=形參;
成員變數和區域性變數的區別
成員變數:
1、成員變數定義在類中,在整個類中都可以被訪問。
2、成員變數隨著物件的建立而建立,隨著物件的消失而消失,存在於物件所在的堆記憶體中。
3、成員變數有預設初始化值。
區域性變數:
1、區域性變數只定義在區域性範圍內,如:函式內,語句內等,只在所屬的區域有效。
2、區域性變數存在於棧記憶體中,作用的範圍結束,變數空間會自動釋放。
3、區域性變數沒有預設初始化值
在使用變數時需要遵循的原則為:就近原則
首先在區域性範圍找,有就使用;接著在成員位置找。(和c語言一樣,在函式內部定義和外部變數名字一樣名字的變數的時候,外部變數暫時被覆蓋)
第二個
呼叫類的普通方法
這個比較簡單,直接上**:
public class thistest2 class thisdemo2
public string get()
public string get2() 輸出結果為:
在構造器中呼叫另乙個構造器在我看來並沒有簡潔多少,可能是我沒有遇到真正好的例子。
第八課 混合
第八課 混合 opengl中的混色 在opengl中實現混色的步驟類似於我們以前提到的opengl過程。接著設定公式,並在繪製透明物件時關閉寫深度快取。因為我們想在半透明的圖形背後繪製 物件。這不是正確的混色方法,但絕大多數時候這種做法在簡單的專案中都工作的很好。rui martins 的補充 正確...
第八課 陣列
1 宣告 int arr string str 2 分配空間 arr new int 5 3 宣告同時分配記憶體 int arr new int 5 4 初始化 int arr new int 5 int arr2 1 宣告 int arr string str 2 分配空間 1 直接為每一維分配空...
第八課 函式
1.id 標識 2.type 型別 3.value 值 關於可變物件的修改,可以參考下面程式理解 a 1,2,3 首先給a賦值列表,1,2,3 print a,id a 列印a,和a的id a 0 6 換掉列表a的第乙個值,改為6 print a,id a 列印a,和a的id,a的id和之前的一樣。...