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{}