Class是java.lang包中的類,該類的實例可以幫助程序創(chuàng)建其他類的實例或者取得其他類的對象的內(nèi)部信息。
1.使用Class實例化一個對象
創(chuàng)建對象最常用的方式就是使用new運算符和類的構(gòu)造方法,實際上也可以使用Class對象得到某個類的實例,步驟如下:
(1) 使用Class的類方法得到一個和某類(參數(shù)className指定的類)相關(guān)的Class對象:
public static Class forName(String className) throws ClassNotFoundException
上述方法返回一個和參數(shù)className指定的類相關(guān)的Class對象,如果類在某個包中,className必須帶有包名,例如:className = "java.util.Date"。
(2) 步驟(1)中獲得的Class對象調(diào)用public Object newInstance() throws InstantiationException,IllegalAccessException方法就可以得到一個className類的對象。
注意:使用Class對象調(diào)用newInstance()實例化一個className類的對象時,className類必須有無參數(shù)的構(gòu)造方法。
2.獲取類的有關(guān)信息
當一個類被加載且創(chuàng)建對象時,和該類相關(guān)的一個類型為Class的對象就會自動創(chuàng)建,任何對象調(diào)用getClass()方法都可以獲取和該對象相關(guān)的一個Class對象,這個Class對象調(diào)用如下的方法可以獲取對象的有關(guān)信息,比如:創(chuàng)建該對象的類的名字、類中的方法名稱、成員變量的名稱等等。
Class對象經(jīng)常調(diào)用的方法如下:
1)String getName()
返回類的名字。
2)Constructor[] getDeclaredConstructors()
返回類的全部構(gòu)造方法。
3)Field[] getDeclaredFields()
返回類的全部成員變量。
4)Method[] getDeclaredMethods()
返回類的全部方法。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程