2020.04.23-学习笔记
第二章 面向对象编程
初探Class类
- Class类可通过实例调用getClass()方法得到,或者通过类名加.class得到。如:Phone m = new Phone(); Class clazz = m.getClass();或者Class clazz = Phone.class;
- Class类可以调用getFeild()方法得到一个类中的所有成员变量,getMethod()得到类中所有方法
初探反射
- 使用反射访问属性
Class clazz = Phone.class;
Field field = clazz.getField(“name”);
filed.get(m); //通过反射获取 属性name的值 - 使用反射访问方法
Method method = clazz.getMethod(“name”,int.class);//方法名,方法参数类型
method.invoke(m,10);//通过invoke()调用方法,m为引用,10为方法参数值 - 使用反射访问静态方法和属性
filed.get(null); //访问静态属性
method.invoke(null,10); //访问静态方法 - 使用反射访问private的方法和属性
Field field = clazz.getDeclaredField(“name”);
field.setAccessible(true);
field.get(m); //访问private属性
Method method = clazz.getDeclaredMethod(“name”);
method.setAccessible(true);
method.invoke(m); //访问private方法