反射

反射的原理

** 应用在一些通用性比较高的代码中
** 后面学到的框架,大多数都是反射来实现的

** 在框架开发中都是基于配置文件开发
  在配置文件中配置了类,可以通过反射得到类中的所有内容,可以让类中的某个方法来执行
** 类中的所有内容:属性、没有参数的构造方法、有参数的构造方法、普通方法

** 反射的原理
  * 首先把java文件保存到本地硬盘 .java
  * 编译java文件成 .class文件
  * 使用jvm,把class文件通过类加载加载到内存中
  * 万事万物皆对象,class文件在内存中使用Class类表示

  * 当使用反射的时候,首先需要获取到Class类,得到这个类之后,就可以得到class文件里面的所有内容
    - 包含属性、构造方法、普通方法
  * 属性通过一个类 Field
  * 构造方法通过一个类 Constructor
  * 普通方法通过一个类 Method


使用反射来操作类里面的属性
  ** 首先获取Class类
    Class c1 = Person.class;
    Class c2 = new Person.getClass();
    Class c3 = Class.forName("day_25_fanshe.Person");
    * 比如:要对一个类进行实例化可以new,也可以不使用new,怎么获取?
    //得到Class
    Class c3 = Class.forName("day_25_fanshe.Person");
    //得到Person类的实例
    Person p = (Person)c3.newInstance();

  

  

  

  

  

posted @ 2018-07-23 16:25  cmlx  阅读(105)  评论(0)    收藏  举报