反射 :java灵魂助手
1.反射 :把java类的各个组成部分封装为其他的类,这就是反射机制
a:好处:1.可以在程序运行过程中,对类对象进行操作 2.解耦合,提高程序的扩展性
例子:诸多idea的代码提示功能就是通过反射实现的
过程:以String对象为例,当我们定义一个String对象 String str = “”;
我们调用str. 的时候就会出现一堆的方法提示
分析:假设有类 public class student{
private String name;
private String age;
public void get name(){
…
}
public void getage(){
…
}
public student(){
…
}
public student (String name,String age){
…
}
}
在java编译器里有一个类叫做类加载器ClassLoader 它会把student.class文件里的成员变量,成员方法,构造方法进行分开,并且建立成员变量数组Fieled[] fieleds存储成员变量 ,建立Construc[] constructs存储构造器,建立Method[] methods存储成员方法,而这个存储对象就是Class类对象
2.反射的三种形式
我们先说哪三种形式
1.Class.forName(“全类名”);
2.类名.class
3.对象.getClass();
其实这三种方法对应着java代码在计算机里的三个阶段
图贴出来,可以自己对比着理解,不想打字了
另外多说一点 对象.getClass()这种方法是定义在Object对象里的方法。