定义
框架设计的灵魂, 将类的各个组成成分封装成其他对象
三个阶段
- source源代码
- class类对象(反射机制),成员变量,构造方法,成员方法
- RunTime运行时阶段
好处
- 在程序运行中,操作这些对象
- 可以解耦,提高可拓展性
成员变量的操作过程
- 获取Person的class对象
- 获取field[]的值,这里是public对象
- 设置值:a.get(对象)
- 获取值:b.set(对象,“值”);
Person person = new Person();
Class personClass = Person.class;
Field[] fields = personClass.getFields();
for (Field field : fields) {
System.out.println(field);
}
System.out.println("----------------------");
Field field = personClass.getField("a");
System.out.println(field);
field.set(person,"Hello");
System.out.println(field.get(person));
System.out.println("=======================");
Field[] declaredFields = personClass.getDeclaredFields();
for (Field declaredField : declaredFields) {
System.out.println(declaredField);
}
System.out.println("-----------------------");
Field declaredField = personClass.getDeclaredField("d");
declaredField.setAccessible(true);
Object value = declaredField.get(person);
System.out.println(value);