1.类和反射
- 类是用来描述一组对象的→对象都有相似的特征
- 反射机制用来描述一组类的→类也有相似的特征
(对象有确定值,抽象成类,类有确定的属性和方法,抽象成CLASS)
结构如下图所示:
对应关系:
File file = new File("路径");
- 文件对象File和真实文件的映射关系--就像--
- Class类和java代码文件的映射关系
(基本类型也可以被class描述)
结构:
Class描述类(类模板)
Feild描述类中属性
Method描述类中方法
Constructor描述构造方法
Annotation用来描述类的注解(注解可以放在类 属性 方法 构造方法上面,参数前面)
Package描述类所在包
2.获取方法:
Class clazz=Class.forName("包名.类名");
Class clazz=类名.class;
Class clazz=对象.getClass();
常用方法:
int modifiers=clazz.getModifiers();获取修饰符 0无1public2private4protected8.static final synchronized代表
String name=clazz.getName();获取类全名(包加类);String name=clazz.getSimpleName();
Package package=clazz.getPackage();获取包名package.getName();
Class clazz=clazz.getSuperClass();获取父类,可能为空
Class[] clazzes=clazz.getInterfaces();获取所有接口
Person p=(Person)clazz.newInstance();默认调无参构造,创建一个实例;
//以上都是类特征
Field filed=clazz.getField("属性名");获取类的属性
int modifiers=filed.getModifiers();获取修饰符
Class type=field.getType();获取属性类型;
String name=field.getName();获取属性名;
//以上是属性