注解的好处:
1可以操作对象
2解除耦合
1获取类对象有3种方式
\1. Class.forName
\2. Hero.class
\3. new Hero().getClass()
2获取Class对象功能:
-
获取功能
-
获取成员变量们
-
Field[] getFields(); 获取public修饰的成员变量,
-
Field getField(String name) 获取指定名称的
-
Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符
-
Field[] getDeclaredFields( String name)
- Field成员变量:
- 设置值 void set(Object,obj,Object value)
- 获取值 get ( Object obj)
- 忽略访问权限修饰符的安全检查
- setAccessible(ture) 暴力反射
- Field成员变量:
-
-
获取构造们
- 作用,创建一个类的对象,
- Constructor
- **** new Constructor().getConstructor()
- new Class().newInstance();使用空餐构造方法时可以简化用这个创建对象,
-
获取成员方法们
- 获取他的目的或者作用,;执行方法
- method.invoke§;执行方法
- String getName()
- 获取他的目的或者作用,;执行方法
-
获取类名
String classname= new Hero().getClass().getName();
-
注解 Annotation
-
@Overtide重写
-
@Deprecated 标注过时
-
@SuppressWarnings 一直警告
本质:是一个接口,默认继承了Annotion接口
元注解:
- @Target 描述注解能够作用的位置
- @Retetion 描述被 保留的时间到什么为止
- @Documented 是否被抽取到api文档中.
- @Inherited描述是否被子类继承