资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划java实验报告java反射技术Java课程设计报告学号姓名班级指导教师柯栋梁安徽工业大学XX年12月实验一:利用JAVA反射技术分析类结构自己定义的类:packagechap05;publicclassanalysisprivateinta;privatecharc;protectedintb;publicdoubled;publicvoidtest1()privatevoidtest2()protecteddoubletest3()return;用java反射技术分析输出的结果:Enterclassname():classpublic();publicvoidtest1();privatevoidtest2();protecteddoubletest3();privateinta;privatecharc;protectedintb;publicdoubled;1.分析程序运行时的输出结果。输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的修饰符2.分析与JAVA反射技术相关的几个类的作用:;Constructor提供关于类的单个构造方法的信息以及对它的访问权限。;Field提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类字段或实例字段。;Method提供关于类或接口上单独某个方法的信息。所反映的方法可能是类方法或实例方法。;Modifier类提供了static方法和常量,对类和成员访问修饰符进行解码。修饰符集被表示为整数,用不同的位位置(bitposition)表示不同的修饰符。实验二:利用JAVA反射技术分析对象结构实验内容:运行示例程序,分析Integer数组对象的结构;改写程序分析一下自定义的类对象,如Employee类。结果分析:该程序较为复杂,通过调试模式我发现ObjectAnalyzer的toString方法为一递归函数,从代码可以看出程序是用来分析对象中非静态的成员变量并将其显示出来,通过递归分析对象中的对象的成员变量,通过获取超类分析其继承来的成员变量。自己编的类:packagechap05;publicclassanalysisextendsEmployeeprivateinta=0;privatecharc=;staticprotectedintb=0;publicdoubled=0;publicvoidtest1()privatevoidtest2()protecteddoubletest3()return;分析结果:a=0,c=,d=salary=,name=null,year=0,mouth=0,day=0实验三:利用JAVA反射技术调用方法指针定义的People类:packagechap05;publicabstractclassPeopledoublesalary;Stringname;intyear,mouth,day;publicabstractdoublegetSalary();publicabstractvoidsetSalary(doublesalary);classEmployeeextendsPeopleEmployee(Stringname,doublesalary,intyear,intmouth,intday)=salary;=name;=year;=mouth;=day;Employee()publicdoublegetSalary()returnsalary;publicvoidsetSalary(doublesalary)=salary;classManagerextendsPeopleprivatedoublebonus;Manager(Stringname,doublesalary,intyear,intmouth,intday)=salary;=name;=year;=mouth;=day;bonus=0;publicdoublegetSalary()returnsalary+bonus;publicvoidsetSalary(doublesalary)=salary;publicvoidsetBonus(doublebonus)博客分类:?JAVA语言中的反射机制:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用他的方法?这些答案是肯定的,这种动态获取类的信息,以及动态调用类的方法的功能来源于JAVA的反射。从而使java具有动态语言的特性。JAVA反射机制主要提供了以下功能:1.在运行时判断任意一个对象所属的类2.在运行时构造任意一个类的对象3.在运行时判断任意一个类所具有的成员变量和方法4.在运行时调用任意一个对象的方法Java反射相关的API简介:位于java。lang。reflect包中-Class类:代表一个类-Filed类:代表类的成员变量-Method类:代表类的方法-Constructor类:代表类的构造方法-Array类:提供了动态创建数组,以及访问数组的元素的静态方法。该类中的所有方法都是静态方法-Class类在java的Object类中的申明了数个应该在所有的java类中被改写的methods:hashCode(),equals(),clone(),toString(),getClass()等,其中的getClass()返回yigeClass类型的对象。Class类十分的特殊,它和一般的类一样继承自Object,其实体用以表达java程序运行时的class和interface,也用来表达enum,array,primitive,JavaTypes以及关键字void,当加载一个类,或者当加载器的defineClass被JVM调用,便产生一个Class对象,Class是Reflection起源,针对任何你想探勘的class,唯有现为他产生一个Class的对象,接下来才能经由后者唤起为数十多个的反射API。Java允许我们从多种途径为一个类class生成对应的Class对象。-运用getClass:Object类中的方法,每个类都拥有此方法Stringstr=abc;Classcl=();-运用Class。getSuperclass:Class类中的方法,返回该Class的父类的Class-运用Class。forName静态方法:-运用,Class:类名.class-运用primitivewrapperclasses的TYPE语法:基本类型包装类的TYPE,如:注意:TYPE的使用,只适合原生数据类型-运行时生成instance想生成对象的实体,在反射动态机制中有两种方法,一个针对无变量的构造方法,一个针对带参数的构造方法,如果想调用带参数的构造方法,就比较的麻烦,不能直接调用Class类中的newInstance,而是调用Constructor类中newInstance方法,首先准备一个Class作为Constructor的参数类型。然后调用该Class对象的getConstructor方法获得一个专属的Constructor的对象,最后再准备一个Object作为Constructor对象昂的newInstance方法的实参。在这里需要说明的是只有两个类拥有newInstance方法,分别是Class类和Constructor类Class类中的newInstance方法是不带参数的,而Constructro类中的newInstance方法是带参数的需要提供必要的参数。例:Classc=(DynTest);Classptype=newClass,;Constructorctor=(ptypr);Objectobj=newObjectnewDouble(),newInteger(123);Objectobject=(obj);(object);-运行时调用Method这个动作首先准备一个Class作为getMethod方法的参数类型,接下来准备一个Obeject放置自变量,然后调用Method对象的invoke方法。注意,在这里调用-运行时调用Field内容变更Field不需要参数和自变量,首先调用Class的getField并指定field名称,获得特定的Field对象后便可以直接调用Field的get和set(Objectobj,Objectvalue)方法Java课程设计报告学号姓名班级指导教师XXXXXX计11X柯栋梁安徽工业大学计算机学院XX年12月实验一:利用JAVA反射技术分析类结构自己定义的类:packagechap05;publicclassanalysisprivateinta;privatecharc;protectedintb;publicdoubled;publicvoidtest1()privatevoidtest2()protecteddoubletest3()return;用java反射技术分析输出的结果:Enterclassname():classpublic();publicvoidtest1();privatevoidtest2();protecteddoubletest3();privateinta;privatecharc;protectedintb;publicdoubled;1.分析程序运行时的输出结果。输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的修饰符2.分析与JAVA反射技术相关的几个类的作用:;Constructor提供关于类的单个构造方法的信息以及对它的访问权限。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号