class 是描述具体一类事物的共同属性和方法
可以创建一个类(抽象出的类)去描述所有的类(事物),即用类去描述所有的类
在运行过程中,对于任意一个类都可以动态获取到当前类的相关信息,对于任意一个对象,都能动态调用对象的属性或方法,我们把这种能够动态获取或调用属性和方法的机制,叫java的反射机制(在运行过程中,可以通过程序改变程序的结构(privateàpublic))。
调用一个类中的属性和方法,一定要创建对象才能调用。Java反射中就可以动态的调用属性或方法,而无需创建类的对象。
Java反射中通过Class类来描述所有类共同拥有的属性和方法
Student stu:stu类的对象
Class class:class类对象(类对象是描述具体某个类的一个对象)
动态语言:在运行过程中能够动态改变程序结构的语言(perl pytho….)
静态语言:javacc++
Java中因有反射机制,所以也认为java是一种动态语言
① 类对象的创建方式
Class类:描述所有类的类
② 类对象的常用方法
③ Java反射包----取到某一个具体的属性及方法和构造方法
Field:
A、获取Field象
B、对Filed对象进行设值取值
C、通过类对象创建类的对象
D、设置对象的访问权限
Method:
A、可变长参数的使用
Constructor:
思考:封装一个方法,能调用任意类下的任意方法
public static Object invokeMethod(){
① 通过Method调用方法
m.invoke(Obj,value)
参数:实际参数 Object…
② 获取Method对象
GetMethod(name,params…)
参数:方法名
参数列表类型:Class…
③ 类对象(必要参数)
}
如果是私有的方法?
如果构造方法是私有的?
返回值的处理?