初识反射

几天来回顾java基础,发现自己对线程、异常和I/O还是处于知道有这么一个概念的层次。于是down了别人的总结,开始学习,收集信息入下:


java1.5新特性
1.java静态导入:import static作用导入某个类的一个或全部静态方法, 调用时直接使用方法名即可
2.可变参数,定义方式如: fun(int a,int ...args ),参数将存储在args数组中
3.自动装箱与拆箱时:如果输入两个值相同的整数类型,且在-128--127之间,两个integer相同
采用的是享元模式(flyweight):如果很多很小的对象,它们有很多相同的属性(内部状态),那么可以把相同的属性变成一个相同的对象,那些不同的属性变成方法的参数(外部状态)
4.枚举:枚举元素是枚举类的子类,即enum A{B,C}生成三个class:A.class ,A$B$.class,A$C$.class,即枚举元素是枚举名对应类的子类
5.反射就是把java类中的各种成分映射成相应的java类。
  Field不是对象身上的值,而是类上的属性,可以根据它获取某个对象上的值
  字节码用==判断是否相对
java执行顺序;
  1.执行父类的静态代码块
  2.执行子类的静态代码块
  3.执行父类的构造方法
  4.执行子类的构造方法
  简言之,在类加载时,静态代码块优先执行,仅仅执行一次

重写的注意事项:
  1.子类抛出的异常不能超过父类的异常
  2..子类的访问控制权限不能低于父类的访问控制权限

如何获得某个类所对应的Class对象
1.通过类的.class方法
2.通过.getClass()方法
3.通过Class类的静态方法forName

通过反射方式调用某个对象的方法的步骤:

1.得到该对象的Class对象
2.通过该Class对象得到该类的构造方法所对应的Constructor对象
3.通过Constructor对象的newInstance方法得到该对象的一个实例
4.通过Class对象得到该方法所对应的Method对象
5.通过该Methdo对象的invoke方法进行调用

你可能感兴趣的:(C++,c,C#)