Class类的使用
package com.zl_huang.test;
public class Demo01 {
public static void main(String arg[]){
Foo foo1 = new Foo(); //以前我们通过new的方式来获取Foo类的实例对象
//在面向对象的世界里,万事万物皆对象,类也是一个对象,它是java.lang.Class类的实例对象
//这个实例对象有三种表达方式:
//第一种表达方式:
Class c1 = Foo.class; //Foo类里边隐含着一个静态的成员变量为class
//第二种表达方式:
Class c2 = foo1.getClass();
//官网上把c1,c2称为Foo类的类类型(class type)也就是说Foo类本身是Class类的一个实例对象,而这个实例对象就是Foo类的类类型
//第三种表达方式:
try {
Class c3 = Class.forName("com.zl_huang.test.Foo");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//现在可以通过Foo类的类类型来创建Foo的类的实例对象
try {
Foo foo2 = (Foo) c1.newInstance(); //类的类类型调用newInstance()方法需要类存在无参构造方法
foo2.print();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Foo{
public void print(){
System.out.println("i am he");
};
}