框架设计的灵魂
反射机制:将类的各个部分封装为其他对象,这就是反射机制。
好处:
- 可以在程序的运行过程中,操作这些对象
- 可以解耦,提高程序 可扩展性
获取class对象的方式
- class.forName(“全类名”);将字节码加载进内存,返回class对象。
- 多用于配置文件,将类名定义在配置文件中。读取文件,加载类。
- 类名.class:通过类名的属性class获取。
- 多用于参数的传递
- 对象.getClass():getclass()方法在onject类中定义着
- 多用于对象的获取字节码方式
结论:
同一个字节码文件(*.class)在一次程序的运行过程中,只会被加载一次,不论通过哪一种方式获取的class对象都是同一个。
class对象功能
classd对象获取:
获取功能
- 获取成员变量:
filed[] getFields(); - 获取构造方法
Constructor<?> getConstructors() - 获取成员方法们:
Method[] getMethods(); - 获取类名
String className = presonClass.getName();