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