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");
};
}

posted @ 2017-03-13 12:26  蔓延者  阅读(205)  评论(0编辑  收藏  举报