反射

class 是描述具体一类事物的共同属性和方法 

可以创建一个类(抽象出的类)去描述所有的类(事物),即用类去描述所有的类

在运行过程中,对于任意一个类都可以动态获取到当前类的相关信息,对于任意一个对象,都能动态调用对象的属性或方法,我们把这种能够动态获取或调用属性和方法的机制,叫java的反射机制(在运行过程中,可以通过程序改变程序的结构(privateàpublic))。

调用一个类中的属性和方法,一定要创建对象才能调用。Java反射中就可以动态的调用属性或方法,而无需创建类的对象。

Java反射中通过Class类来描述所有类共同拥有的属性和方法

Student stustu类的对象

Class classclass类对象(类对象是描述具体某个类的一个对象)

动态语言:在运行过程中能够动态改变程序结构的语言(perl pytho….)

静态语言:javacc++

          Java中因有反射机制,所以也认为java是一种动态语言

① 类对象的创建方式

   Class类:描述所有类的类

类对象的常用方法

 

 ③ Java反射包----取到某一个具体的属性及方法和构造方法

Field

   A获取Field象

   BFiled对象进行设值取值

   C、通过类对象创建类的对象

   D、设置对象的访问权限

   Method:

       A、可变长参数的使用

   

   Constructor

 思考:封装一个方法,能调用任意类下的任意方法

   public static Object invokeMethod(){

       ① 通过Method调用方法

           m.invoke(Obj,value)

               参数:实际参数 Object…

    ② 获取Method对象

        GetMethod(name,params…)

            参数:方法名

            参数列表类型:Class…

    ③ 类对象(必要参数)

}

   如果是私有的方法?

   如果构造方法是私有的?

   返回值的处理?

原文地址:https://www.cnblogs.com/dulute/p/11346434.html