Java自學第八課之this的使用 自學筆記

2021-08-29 01:21:58 字數 1246 閱讀 1355

(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和之前的一樣。...