JAVA之反射概述&&获取Class类对象

反射概述

1、反射是指对于任何一个Class类,在“运行的时候”都可以直接得到这个类全部成分

2、在运行时,可以直接得到这个类的构造器对象:Constructor

3、在运行时,可以直接得到这个类的成员变量对象:Field

4、在运行时,可以直接得到这个类的成员方法对象:Method

5、这种运行时动态获取类信息以及动态调用类中成分的能力称为Java语言的反射机制

  Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以得到任意一个对象所属的类的信息,可以调用任意一个类的成员变量和方法,可以获取任意一个对象的属性和方法。这种动态获取程序信息和动态调用对象的功能叫做Java语言的反射机制。

  反射机制的优点是可以实现动态创建对象和编译(即动态编译),特别是在Java EE的开发中,反射的灵活性表现得十分明显。例如:一个大型的软件,不可能一次就把程序设计得很完美,当这个程序编译、发布上线后,如果需要更新某些功能,不可能让用户把以前的软件卸载,再重新安装新的版本。这时,如果采用静态编译,需要把整个程序重新编译一次才可以实现功能的更新,而采用反射机制,程序可以在运行时动态编译和创建对象,不需要用户重新安装软件即可实现功能的更新。

反射的关键

反射的第一步都是先得到编译后的Class类对象,然后就可以得到Class的全部成分

总之反射的核心思想和关键就是:得到编译以后的class文件对象

获取Class类的对象的三种方式:

1:Class c1=Class.forName(“全类名”);

2:Class c2=类名.class

3:Class c3=对象.getClass();

public class 反射机制_1 {
    //反射的第一步:获取Class对象
    public static void main(String[] args) throws Exception {
        //Class类中的一个静态方法:forName(全限名:包名 + 类名)
        Class c=Class.forName("IT2.反射机制_1");
        System.out.println(c);//反射机制_1.calss

        //类名.class
        Class c2=反射机制_1.class;
        System.out.println(c2);

        //对象.getClass()获取对象对应类的Class对象
        反射机制_1 s=new 反射机制_1();
        Class c3=s.getClass();
        System.out.println(c3);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_62731133/article/details/125073133