反射是一种底层开发技术
1.类对象
类对象是类加载的产物 用于储存类的信息
获取类对象的方法:
(1)类名.class 直接获得类对象
(2)类的对象.getclass() 获得对应类对象
(3)class.forName(“类的全名”) 通过类名获得类对象
2.类对象中的方法
getName()
getSuperclass() 获得父类的类对象
getInterfaces() 获得接口的类对象
getMethods() 获得类中所有公开方法的method对象(包含父类)
getDeclaredMethods() 获得本类中所有的方法的Method对象(包含非公开对象)
newInstance() 通过类对象创建类的对象
3.Method对象代表一个方法:
invoke(Object o):对o调用本方法
利用反射可以做到通用的,灵活的编程还可以绕开封装 调用对象的私有方法
代码实现:
Method m = c.getDeclaredMethod("study");
m.setAccessible(true);
m.invoke(o);