黑馬程式設計師 反射

2021-06-28 21:19:36 字數 792 閱讀 2469

反射技術:

實就是動態載入乙個指定的類,並獲取該類中的所有的內容。而且將位元組碼檔案封裝成物件,並將位元組碼檔案中的內容都封裝成物件,這樣便於操作這些成員。簡單說:反射技術可以對乙個類進行解剖。

反射的好處:大大的加強了程式的擴充套件性。

反射的基本步驟:

1.獲得class物件,就是獲得指定的檔案的位元組碼檔案物件。

2.例項化物件,獲得類的屬性,方法或建構函式。

3.訪問屬性,呼叫方法、呼叫建構函式建立物件。

獲取class物件有3種方法:

1:通過每個物件都具備的方法getclass來獲取。弊端:必須要建立該類物件,才可以呼叫getclass方法。

2:每乙個資料型別(基本資料型別和引用資料型別)都有乙個靜態的屬性class。弊端:必須要先明確該類。

前兩種方式不利於程式的擴充套件,因為都需要在程式使用具體的類來完成。

3:使用的class類中的方法,靜態的forname方法。

指定什麼類名,就獲取什麼類位元組碼檔案物件,這種方式的擴充套件性最強,只要將類名的字串傳入即可。

獲取位元組碼檔案物件後,都需要建立指定類的物件。

建立物件的兩種方式(其實就是物件在進行例項化時的初始化方式):

1,呼叫空引數的建構函式:使用了class類中的newinstense方法。

2,呼叫帶引數的建構函式:先要獲取指定引數列表的建構函式物件,然後通過該建構函式的物件的newinstense()進行物件的初始化。

綜上所述,第二種方式,必須要先明確具體的建構函式的引數型別,不便於擴充套件。所以一般的別反射的類,都會在類中提供乙個共有的空參建構函式。

黑馬程式設計師 反射

反射 理解 1 反射 在程式執行時期,是通過 class 檔案物件,去使用構造方法,成員變數,成員方法。2 獲取 class 檔案物件 1 object類的 getclass 方法2 資料型別的靜態的 class 屬性3 class類 forname 靜態方法 推薦 開發使用第三種。class類中的...

黑馬程式設計師 反射機制

反射故名思意,就是將乙個物件對映出來。型別能看清裡面的架構。就好比乙個鏡子裡照映出自己的影子一樣。1 如何獲取物件的型別名?class sample1 public class classreflection 2 如何獲取物件的構造方法?class sample1 public sample1 st...

黑馬程式設計師 反射技術

動態載入乙個類,得到這個類中的所有內容。而且將位元組碼檔案封裝在乙個物件中 class物件 並將位元組碼中的內容都封裝成對像,這樣便於操作這些成員。可以說反射技術大大地增強了程式的擴張性,因為乙個類進行解刨後,可以對他進行很多操作。得到類的位元組碼,將這個類的位元組碼封裝在class物件中 例項化物...