对反射的认识
反射的概念是由 Smith 在 1982 年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。
通俗来讲,反射就是“回看自身” ,就是“照镜子”。可以看成是一种自我反省的能力,像照镜子,通过反射看清自己的本来状态。
这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在 Lisp 和面向对象方面取得了成绩。
反射实例 — Java中的反射
Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。
Java反射机制主要提供下面几种用途:
- 在运行时判断任意一个对象所属的类
( IsKindsOf / IsInstance 的能力!MFC 中提及的 RTTI 的能力!) - 在运行时构造任意一个类的对象,换句话说,反射为面向对象的程序提供了“动态创建”的能力。
( MFC 中提及的 动态创建能力 dynamic create !) - 在运行时判断任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
反射实例 — Python中的反射
- 在运行时判断任意一个对象所属的类
> Python内置函数:type(),isinstance() - 在运行时找到一个对象所有属性和方法
> Python内置函数:dir()