1.什么是反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制

获取Class对象的三种方式
类名.class
实例对象.getClass()
Class.forName("类的全路径");

通过Class对象获取构造器对象
Constructor [] cs = clazz.getConstructors(); -- 获取构造器的数组
Stu stu = (Stu) clazz.newInstance(); -- 调用空的构造方法,获取实例对象
Constructor c = clazz.getConstructor(类型.class); -- 通过指定的参数来获取构造器对象

通过Class对象获取属性对象
Field f = clazz.getField("num"); -- 获取公有的属性对象
Field f = clazz.getDeclaredField("属性"); -- 获取公有或者私有的属性对象

通过Class对象获取方法的对象
Method m = clazz.getMethod("方法名称",参数类型.class); -- 获取共有的方法对象
Method m = clazz.getDeclaredMethod("方法名称",参数类型.class); -- 获取公有或者私有的方法的对象