资源描述:
《安徽工业大学——java实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《Java》课程设计报告学号XXX姓名XXX班级计11X指导教师柯栋梁安徽工业大学计算机学院2013年12月实验一:利用JAVA反射技术分析类结构自己定义的类:packagechap05;publicclassanalysis{privateinta;privatecharc;protectedintb;publicdoubled;publicvoidtest1(){}privatevoidtest2(){}protecteddoubletest3(){return1.0;}}用java反射技术分析输出的结果:Enterclass
2、name(e.g.java.util.Date):chap05.analysisclasschap05.analysis{publicchap05.analysis();publicvoidtest1();privatevoidtest2();protecteddoubletest3();privateinta;privatecharc;protectedintb;publicdoubled;}1.分析程序运行时的输出结果。输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的修饰符2.分析与JAVA反射技术相关的几个类的作
3、用:java.lang.reflect.Constructor;Constructor提供关于类的单个构造方法的信息以及对它的访问权限。java.lang.reflect.Field;Field提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。java.lang.reflect.Method;Method提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。java.lang.reflect.Modifier;Modif
4、ier类提供了static方法和常量,对类和成员访问修饰符进行解码。修饰符集被表示为整数,用不同的位位置(bitposition)表示不同的修饰符。实验二:利用JAVA反射技术分析对象结构实验内容:运行示例程序,分析Integer数组对象的结构;改写程序分析一下自定义的类对象,如Employee类。结果分析:该程序较为复杂,通过调试模式我发现ObjectAnalyzer的toString方法为一递归函数,从代码可以看出程序是用来分析对象中非静态的成员变量并将其显示出来,通过递归分析对象中的对象的成员变量,通过获取超类分析其继承来的
5、成员变量。自己编的类:packagechap05;publicclassanalysisextendsEmployee{privateinta=0;privatecharc='';staticprotectedintb=0;publicdoubled=0;publicvoidtest1(){}privatevoidtest2(){}protecteddoubletest3(){return1.0;}}分析结果:chap05.analysis[a=0,c=,d=0.0][][salary=0.0,name=null,year=0,m
6、outh=0,day=0][]实验三:利用JAVA反射技术调用方法指针定义的People类:packagechap05;publicabstractclassPeople{doublesalary;Stringname;intyear,mouth,day;publicabstractdoublegetSalary();publicabstractvoidsetSalary(doublesalary);}classEmployeeextendsPeople{Employee(Stringname,doublesalary,intye
7、ar,intmouth,intday){this.salary=salary;this.name=name;this.year=year;this.mouth=mouth;this.day=day;}Employee(){}publicdoublegetSalary(){returnsalary;}publicvoidsetSalary(doublesalary){this.salary=salary;}}classManagerextendsPeople{privatedoublebonus;Manager(Stringname
8、,doublesalary,intyear,intmouth,intday){this.salary=salary;this.name=name;this.year=year;this.mouth=mouth;this.day=day;bonus=