反射-Class
package classes; public class ClassDemo1 { public static void main(String[] args){ Foo foo1 = new Foo();//foo1 是一个实例对象 //同时 Foo 也是Class的一个实例对象,任何一个类都事Class的一个实例对象 //Class对象的构造方法是私有的构造方法, 只能由虚拟机创建 //Class 有三种创建方式 //第一中创建方式 Class c1 = Foo.class; //第二种床创建方式 Class c2 = foo1.getClass(); /*官网说明c1, c2 表示了Foo类的类类型(class type) ,正说明了类也是对象*/ System.out.println(c1 == c2); //true //c1 和c2 都是类类型一个类只可能是Class的一个实例对象 //第三种方式,通过类的全称获得Class 的对象 try { Class c3 = Class.forName("classes.Foo"); } catch (ClassNotFoundException e) { e.printStackTrace(); } // 可以通过类的类型创建类的实例 try { Foo foo = (Foo)c1.newInstance(); System.out.println(foo); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } class Foo{}