1 / 15
文档名称:

黑马程序员java教程:反射.docx

格式:docx   大小:74KB   页数:15
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

黑马程序员java教程:反射.docx

上传人:ranfand 2017/9/15 文件大小:74 KB

下载得到文件列表

黑马程序员java教程:反射.docx

文档介绍

文档介绍:反射
    反射
    JAVA反射机制是在运行状态中,对于任意一个类(class文件),都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象方法的功能称为java语言的反射机制。
    动态获取类中信息,就是java反射。可以理解为对类的解剖。
    如果想要对指定名称的字节码文件进行加载并获取其中的内容并调用,这时就使用到了反射技术。
    .
    所谓的框架就是对外提供一些接口,也就是功能扩展的标准,由实现类按照这个接口标准去实现。框架内部如果需要操纵这些实现类的对象完成某些操作,那么只需要把这些实现类的全名(包名+类名)写在某个配置文件中,框架代码只需要读取这个配置文件,就可以获取这个实现类的字节码文件,然后利用反射技术创建这个实现类的对象并且调用相应的方法完成一些操作。
    用于描述字节码的类就是Class类,创建对象,可以提取字节码文件中的内容,如字段、构造函数、一般函数。该类就可以获取字节码文件中的所有内容,
那么反射就是依靠该类完成的。想要对一个类文件进行解剖,只要获取到该类的字节码文件对象即可。
    示例:获取字节码文件对象的3种方式
      
   
.;
public class Person
{
        private int age;
        private String name;
    public Person(int age,String name){
                super();
                = age;
                = name;
                ("Person param run..." + + ":" + );
        }
        public Person(){
                super();
                ("person run");
        }
        public void show(){
                (name + "...show run..." + age);
        }
        private void privateMethod(){
                ("method run");
        }
        public void paramMethod(String str,int num){
                ("paramMethod run..." + str + ":" + num);
        }
        public static void staticMethod(){
                ("static method run...");
        }
}

   
.;
//要想要对字节码文件进行解剖,必须要有字节码文件对象。
public class ReflectDemo
{
        public static void main(String[] args) throws ClassNotFoundException {
                getClassObject_1();
                ("--------------------");