1:Class cl=A.class;
JVM将使用類A的類裝載器, 将類A裝入記憶體(前提是:類A還沒有裝入記憶體),不對類A做類的初始化工作.傳回類A的Class的對象。
2:Class cl=對象引用o.getClass();
傳回引用o運作時真正所指的對象(因為:子對象的引用可能會賦給父對象的引用變量中)所屬的類的Class的對象 。
3:Class.forName("類名");
.裝入類A,并做類的初始化
[color=red].getClass()是動态的,其餘是靜态的。
.class和class.forName()隻能傳回類内field的預設值,getClass可以傳回目前對象中field的最新值
Class.forName() 傳回的是一個類,.newInstance() 後才建立一個對象,Class.forName()的作用是要求JVM查找并加載指定的類,也就是說JVM會執行該類的[/color]
例子:
待反射代碼:
反射代碼: