飞道的博客

第八堂课2(J2EE中的反射)

411人阅读  评论(0)

第八堂课2(反射)

一、什么是反射?
概念:反射是java语言中的一种机制,通过这种机制可以动态实例化对象、读写属性、调用方法(重点)

二、类类:将所有的类放在一起叫做类类
例如:

所有狗       狗类  Dog (泛指)          	狗对象   旺财(特指)

所有猫       猫类  Cat (泛指)         	猫对象   肥波(特指)

所有类       类类  java.lang.Class(泛指)     	类对象  特定类(特指)

三、一切反射相关的代码都从获得类对象开始
1.Class.forName(完整类名)
案例:
知识点:1.getName():获取完整的类名(包名+类名)
2.getSimpleName():获取简写类名
2.类名.class
案例:
3.对象.getClass();
案例:

注:同一个类的类对象只会被创建一次 ( 地址相等用==比较地址)

四、常见的异常:
1.java.lang.ClassNotFoundException:类没有找到
出现这个异常有两种情况:
1.类名错误
2.架包没有导入
2.java.lang.NoSuchMethodException:方法不匹配
3.java.lang.IllegalArgumentException;非法参数异常
出现这个异常有一种情况:
1.在传参时跟具体使用时不匹配

*五、反射的三大作用(反射的接口和类都在java.lang.reflect.里面)
1.实例化对象(三种方式)
案例:(注意看图中的注释)

	1.getConstructor()的底层代码中:
		1.Class<?>:可变参数
		2.parameterTypes:参数类型(类对象)

2.读写属性(Field  set/get)
	案例:


(注意看图中的注释)

3.动态调用方法 (Method m;  m.invoke)
	案例:

(注意看图中的注释)

六、访问修饰符(看懂案例)
1.getModifiers()
2.作用:使用二进制的方式将所有的修饰符的二进制进行相加

	案例:


感谢各位的光临寒舍!


转载:https://blog.csdn.net/men_ma/article/details/105500379
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场