《Java的反射机制》PPT课件.ppt

《Java的反射机制》PPT课件.ppt

ID:52269641

大小:1.63 MB

页数:38页

时间:2020-04-03

《Java的反射机制》PPT课件.ppt_第1页
《Java的反射机制》PPT课件.ppt_第2页
《Java的反射机制》PPT课件.ppt_第3页
《Java的反射机制》PPT课件.ppt_第4页
《Java的反射机制》PPT课件.ppt_第5页
资源描述:

《《Java的反射机制》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java的反射机制主要内容1.Class的基本概念以及创建方式2.反射的基本概念3.类的各个组成部分对应的反射类ConstructorFieldMethod4.反射在框架中的应用反射的基础-ClassJava当中的类用来表示具有相同属性和方法的对象的结合,是抽象的概念。对象是类创建的,同一个类的不同对象具有不同的属性值。Java当中定义的所有类都属于同一类事物,可以用Class来表示。对比理解:不同的人可以用Person类来表示。人->PersonJava当中定义的不同类可以用Class来表示。Java当中的类->Clas

2、sClass类的对象-字节码Class类的对象就是不同的类对应的字节码。获取Class的对象Personp1=newPerson();Classclass1=newClass()(×)三种方式:(1)对象名.getClass()Personp1=newPerson();p1.getClass();(2)类名.classDate.class(3)Class.forName()方法(此方式用的较多)Class.forName(“java.lang.String”);基本数据类型的Class对象Java当中的基本数据类型有:bo

3、oleanintshortbytecharlongfloat和double它们也有各自的Class对象。例如:int.classvoid也有自己对应的Class对象void.class基本数据类型对应的封装类有属性TYPE,这个属性代表了封装类所封装的基本数据类型的Class对象。int.class==Integer.TYPEvoid.class==Void.TYPE反射(Reflect)反射就是把Java类中的各个组成部分映射成相应的Java类。一个类的组成部分包括:属性、方法、构造方法、包等。这些组成部分都会被映射成相

4、应的类。Class类定义了一系列方法来获取java类的属性、方法、构造方法、包等信息,这些信息都有相应的类来表示,分别是Field、Method、Constructor、Package等。注意:表示java类组成部分的各种类位于java.lang.reflect包中。Constructor类Constructor类用来描述类中所定义的构造方法。(1)得到类的所有构造方法Constructorconstructors[]=Class.forName(“java.lang.String”).getConstructors();

5、(2)得到类中某个具体的构造方法,在getConstructor中传入参数类型所对应的字节码Constructorconstructor=Class.forName(“java.lang.String”).getConstructor(String.class)使用Constructor类的目的是用来创建相应类的对象正常情况Stringstr=newString(“hello”);反射情况Constructorcon=String.class.getConstructor(String.class)Stringstr=(S

6、tring)con.newInstance(“hello”);Class.newInstance()通过反射方式创建对象的过程Class---->Constructor---->某个类的对象只有当要用某个类的无参构造方法创建该类对象时,可以省略创建Constructor类对象的这个过程。Dated=(Date)Class.forName(“java.util.Date”).newInstance();注意:java运行环境的缓存中保存了类的无参构造方法所对应的Construtor对象。见源文件:ReflectTest.ja

7、vaField类Field类用来表示类中的属性(字段)。(1)Class.getFields():得到Class对象的所有字段,返回的是Field数组。(2)Class.getField(Stringname)返回一个Field对象,它反映此Class对象所表示的类或接口的指定公有成员字段。(3)Field的对象所代表的某一个类的属性,而不是那个类的某一个对象的属性。要得到某个对象对应的属性值,需要通过get(Objectobj)方法与某个对象具体关联。(4)对于非公有属性只能通过Class的getDeclaredFiel

8、d(StringfieldName)方法得到。(5)对于私有属性要得到它所关联到的对象的值,需通过Field的setAccessible(booleanboolean)方法设置。(6)Field类的getType()方法用来得到字段所属的类型见源文件:Field/FieldTest.javaField类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。