建立Class類的實例對象的三種方法

Fool fool =new Fool();

Class 類裏面提供的構造方法是private的,且
只有java虛擬機能建立Class的實例對象,
因此不能直接建立他的對象。
任何類都是Class類的實例對象,這個實例對象有3種表示方法:javascript

方法一:
Class c1=Fool.class;//任何一個類都有一個隱含的靜態成員變量class
方法二:
Class c2=fool.getClass();//已知該類的對象經過getClass方法

c一、c2表示Fool類的類類型
類也是對象,是Class類的實例對象
這個對象咱們稱爲該類的類類型
System.out.print(c1==c2);結果爲true,即表示他們是同一個實例對象。
解釋:無論c1與c2都表明了Foo類的類類型,一個類只多是Class類的一個實例對象java

方法三:
Class c3=null;
try{ 
 
   
    c3=Class.forname("com.imooc.reflect.Foo");
}catch(ClassNotFoundException e){ 
 
   
    e.printStackTrace();
}

總結:咱們徹底能夠經過類的類類型建立類的對象實例—>經過c1或者c2或者c3建立Foo的實例web

try{ 
 
   
    Foo foo=(Foo)c1.newInstance();
}catch(InstantiationException  e)
{ 
 
   
    e.printStackTrace();
}catch(IllegalAccessException e){ 
 
   
    e.printStackTrace();
}

本文分享 CSDN - 希境。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。svg

相關文章
相關標籤/搜索