zoukankan      html  css  js  c++  java
  • 反射机制(1)认识Class类

    认识Class类:

    正常情况下,必须指定类的完整路径才能实例化对象,但是java中也允许通过一个对象找到其所在类的信息。这实际就是class类的功能。

    package 类集;
    
    class X{
    };
    public class test1{
        public static void main(String args[]){
            X x = new X() ;    // 实例化X类的对象
            System.out.println(x.getClass().getName()) ;    // 得到对象所在的类
        }
    }

    运行结果:

    类集.X

    object类有如下优点:

    CLASS类

      Class本身表示一个类本身,通过class可以得到一个类中完整结构,包括此类的方法定义,方法属性等。

    常用方法:

    实例化class类对象的三种方法:

    1,通过forName(包。类名称)方法。

    2,类。class  

    3,对象。getClass()

    一,其中forName定义如下:实例化是forName(包.类名称)

    public static Class<?> forName(String className)
                            throws ClassNotFoundException

    可见,使用forName()需要处理异常。

    二,getClass()是object类的方法,对象.getClass()

    三,类。class。

    四,通过getName(),可以获取类名称。

    如下例子:

    package 类集;
    
    class X{
    };
    public class test1{
        public static void main(String args[]){
            Class<?> c1 = null ;        // 指定泛型
            Class<?> c2 = null ;        // 指定泛型
            Class<?> c3 = null ;        // 指定泛型
            try{
                // 以下的操作形式是在开发中最常用的一种形式
                c1 = Class.forName("类集.X") ;  //forName(包.类名称)
            }catch(ClassNotFoundException e){
                e.printStackTrace() ;
            }
            c2 = new X().getClass() ;        // 通过Object类中的方法实例化
            c3 = X.class ;    // 通过类.class实例化
            System.out.println("类名称:" + c1.getName())  ;    // 得到类的名称
            System.out.println("类名称:" + c2.getName())  ;    // 得到类的名称
            System.out.println("类名称:" + c3.getName())  ;    // 得到类的名称
        }
    }

    一旦实例化Class类后,即可进行反射的进一步操作。

    总结

    1,了解class类的作用:反射源头,

    2,三种class类的实例化方式,要以forName()重点掌握,还有 类.class

  • 相关阅读:
    尾递归
    gcc/g++ 命令
    GCC输出带C源代码的汇编文件
    linux下Ctrl命令组合
    静态链接库(lib)、动态链接库(dll)与动态链接库的导入库(lib)
    VS2010-MFC(菜单:菜单及CMenu类的使用)
    VS2010-MFC(菜单:VS2010菜单资源详解)
    VS2010-MFC(常用控件:标签控件Tab Control 下)
    VS2010-MFC(常用控件:标签控件Tab Control 上)
    VS2010-MFC(常用控件:树形控件Tree Control 下)
  • 原文地址:https://www.cnblogs.com/alsf/p/6538482.html
Copyright © 2011-2022 走看看