本帖最后由 徐帅 于 2012-7-29 17:44 编辑
想要深刻理解反射,当然必须理解反射的基石Class类:
Java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class 1. Class类的各个实例对象 对应各个类在内存中的字节码,例如Person类的字节码等 2. 一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类 的字节码,不同的里的字节码是不同的,所以它们在内存中的内容是不同的,这一 个个空间可以分别用一个个的对象来表示,这些对象显然具有相同的类型,这个类型就是Class类型 反射:
就是把java类中的各种成分映射成相应的java类。
通过Class类提供的一系列方法来活得其中的变量,方法,修饰符,包等信息,他们是
Filed,Method,Constructor,Package等,
只是通过函数名和参数类型的不同来区别,一个java类中会有很多种
方法,只要传入函数名,和参数类型,就能够明确所要获取的方法,
反射的作用--> 实现框架功能,
就像房子与门的关系,房子是框架,将门窗插入框架中,房子就可以使用了。
当然房子是在早期就盖好的,我们为了能够在房子框架的基础上使用它,只要调用用户的
提供的一个个模块,比如客厅,厨房,卧室,把他们当做一个个类,他们有各种不同的功能
与方法,是我们来定义的,就像装修一样,每个人装修都会有不同的风格,但是厨房还是做饭的
卧室还是休息的,但房子的框架是固定的,可以通过方法来调用这些功能,就像java中通过一些
方法来获取方法,变量的字节码一样,类是我们后期定义的,通过框架我们都可以使用它们。
对于反射的学习,
个人觉得是把视频多看两遍,但是一定要记笔记,虽然张老师没有给我们总结的
很详细,但是他说的话都很深刻,而且很多重点,所以及时记录下来,多思考,把概念弄清楚了。我想
学习起来就容易多了,因为之后就是方法的使用,java学习,就是在学习一种思想,当然在理解的过程
中不断实践。敲代码分析,会更加深入的理解。
以上只是个人的理解,希望对楼主有帮助。有不对的地方,还请指正
|