简单理解Class类就是用来操作.class文件

package com.lang;

public class ClassTest {
    
    
    public static void main(String[] args) {
        
        //简单理解Class类就是用来操作.class文件的,可以看成是class的文件对象,或者可以理解为装有.class内容的对象
        
        //1.利用Class根椐路径的字符串产生类的对象
        StringTest st = new StringTest();
        
        try {
              
            Class c = Class.forName("com.lang.StringTest");//得到指定中路径下的.class文件
            Object obj = c.newInstance();//根椐得到这个.class文件产生的对象.
            StringTest st1 = (StringTest)obj; //强制转为StringTest,因为你知道加载的是什么类的.class
            st1.abc();
            
            
            //其它得到Class对象的方式
            //2.根椐对象得到.class,可能用于判断两个对象是否来自同一个类
            Class c2 = st.getClass();
            
            //3.根椐类名产生
            Class c3 = StringTest.class;
            
            System.gc();//强行让垃圾回收器工作
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }
    //在实际程序运行时你不知道要用哪个类处理用户的请求,需要随时根用户产生对应类,有了Class这个对象
    //就可以随时来处理。

}

 

posted @ 2012-10-19 11:14  邹晟  阅读(305)  评论(0编辑  收藏  举报