Java基礎學習--反射

java反射機制是框架實現的基石,大大增加程序的靈活性和通用性。

一.反射機制原理

反射定義:

java的反射機制是指在程序運行狀態中,對於任意一個類都能知道這個類的所有屬性和方法;並且對於任意一個類都能調用任意一個方法,這種動態獲取信息以及動態調用對象方法的功能稱爲java的反射機制。

java反射理解的核心把java中的各種成分映射成一個個java對象,存儲在Class類中,所以重點是理解Class類

Class類的實例表示正在運行的Java的類和接口

Class 沒有公共構造方法,Class 對象是在加載類時由 Java 虛擬機以及通過調用類加載器中的defineClass方法自動構造的。也就是這不需要我們自己去處理創建,JVM已經幫我們創建好了。

在程序運行期間要想獲取或者修改對象信息,例如:獲取類的成員變量,成員方法,或者對該對象的信息進行修改,可以利用反射技術把各種成分映射爲java對象,然後再對java對象進行操作。

反射機制的好處:無需把類硬編碼的代碼中,可以大大增加代碼的靈活性和通用性,對象信息在程序執行的過程中進行獲取,因此特別適合對靈活要求較高的各種框架中。

二.Class類獲取的三種方式

1.通過Object類中getClass()方法獲取一個Class實例

例如:

        Employee employee = new Employee("liujie",28);
        Class c1 = employee.getClass();

2.通過Class類中靜態方法forName()方法獲取一個Class實例

            String str = "com.company.Employee";
            Class c = Class.forName(str);

3.任何一個數據類型都一個class靜態屬性

            Class c = Employee.class;

注意:在運行期間一個類只有一個Class對象產生

三.Java反射機制的功能

Java反射機制提供如下功能:

在運行時判斷任意一個對象所屬的類

在運行時構造任意一個類的對象

在運行時判斷任意一個類所具有的成員變量和方法

在運行時調用任一個對象的方法

在運行時創建新類對象

在使用Java的反射功能時,基本首先都要獲取類的Class對象,再通過Class對象獲取其他的對象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章