java实验报告8

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验报告(2014/2015学年第2学期)课程名称JAVA程序设计实验名称抽象类和抽象方法实验时间2015年5月7日指导单位计算机学院/软件学院软件工程系指导教师周莉学生姓名班级学号学院(系)计算机软件学院专业计算机科学与技术1实验名称抽象类和抽象方法指导教师周莉实验类型上机实验学时2实验时间2015-5-7一、实验目的1.掌握多态的实现2.掌握抽象类和抽象方法的定义和使用二、实验环境(实验设备)1.每位学生配备计算机一台2.计算机需安装好JDK和Jcreator三、实验内容1.首先编写一个抽象类,要求该抽象类有3个抽象方法:Publicabstractvoidf(intx);Publicabstractdoubleg(doublex);Publicabstractdoubleh(doublex);然后分别给出这个抽象类的3个子类。要求:在应用程序主类中使用这些子类创建对象,再让它们的上转型对象调用方法f()、g()和h()。(1)源程序:abstractclassA{publicabstractvoidf(intx);publicabstractvoidg(intx,inty);publicabstractdoubleh(doublex);}classA1extendsA{publicvoidf(intx){System.out.println(x);}publicvoidg(intx,inty){intz=x+y;System.out.println(z);}publicdoubleh(doublex){returnx*x;}}classA2extendsA{publicvoidf(intx){System.out.println(Hello:+x);}publicvoidg(intx,inty){intz=x-y;System.out.println(z);2}publicdoubleh(doublex){returnMath.sqrt(x);}}classA3extendsA{publicvoidf(intx){System.out.println(你好:+x);}publicvoidg(intx,inty){doublez=(double)x/y;System.out.println(z);}publicdoubleh(doublex){return1/x;}}publicclassZuoYe5_2{publicstaticvoidmain(Stringargs[]){Aa=newA1();a.f(10);a.g(12,20);System.out.println(a.h(100));a=newA2();a.f(10);a.g(12,20);System.out.println(a.h(100));a=newA3();a.f(10);a.g(12,20);System.out.println(a.h(100));}}(2)实验结果:32.设计一个人员类(Person),其中包含一个方法pay,代表人员的工资支出。再从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(AssistantProfessor)和教授类(Professor)。其中:工资支出=基本工资+授课时数*每课时兼课金。但助教基本工资为800,每课时兼课金25,讲师基本工资为1000,每课时兼课金35,副教授基本工资为1200,每课时兼课金40,教授基本工资为1400,每课时兼课金50。将Person定义为抽象类,pay为抽象方法,设计程序实现多态性。(1)源程序:abstractclassPerson{protectedStringname;protecteddoubleclassum;publicPerson(){this.name=;classum=0;}publicPerson(Stringname,doubleclassum){this.name=name;this.classum=classum;}abstractpublicdoublepay();publicStringtoString(){return姓名:+this.name+\t工资支出:+this.pay()+\n;}}classAssistantextendsPerson{publicAssistant(Stringname,doubleclassum){super(name,classum);}4publicdoublepay(){return800+classum*25;}}classInstructorextendsPerson{publicInstructor(Stringname,doubleclassum){super(name,classum);}publicdoublepay(){return1000+classum*35;}}classAssistantProfessonextendsPerson{publicAssistantProfesson(Stringname,doubleclassum){super(name,classum);}publicdoublepay(){return1200+classum*40;}}classProfessorextendsPerson{publicProfessor(Stringname,doubleclassum){super(name,classum);}publicdoublepay(){return1400+classum*50;}}publicclasssy8_2{publicstaticvoidmain(Stringargs[]){Personps[]=newPerson[4];ps[0]=newAssistant(张三,120);ps[1]=newInstructor(赵二,130);ps[2]=newAssistantProfesson(李四,125);ps[3]=newProfessor(王五,134);Stringoutput=;for(inti=0;ips.length;i++)output+=ps[i];System.out.println(output);}}(2)实验结果:53.定义一个抽象类Bank,它包含有oneyearRate(定期利率)、oneyearNationaldebt(国债利率)和interestRate(活期利率)常数和count()方法及show()方法。Count()方法用于对本息合计(存款本金+利息)进行计算,而show()方法用于对本息合计进行显示。由于对不同的存款方式,利率是不同的,因此此程序分别定义多个子类实现对抽象类的继承,实现对利率的计算和显示。注意:本程序定义了定期利率、活期利率、国债利率三种利率,按照一万元钱位存款单位进行统计,计算每种利率下存款一年后的本息合计。除了国债外,其他利率都要交纳个人所得税20%。(1)源程序:abstractclassBank{protectedstaticfinalfloatoneyearRate=0.0178f;protectedstaticfinalfloatoneyearNationaldebt=0.0198f;protectedstaticfinalfloatinterestRate=0.0078f;abstractvoidcount();abstractvoidshow();}classInterestRateCalcuteextendsBank{privatefloatsaving;privatedoublesum;InterestRateCalcute(floati){saving=i;count();}publicvoidcount(){sum=saving+(saving*Bank.interestRate*0.8);}publicvoidshow(){System.out.println(Withcurrentinterestrate,sum=+sum);}6}classOneyearNationaldebtCalcuteextendsBank{privatefloatsaving;privatedoublesum;OneyearNationaldebtCalcute(floati){saving=i;count();}publicvoidcount(){sum=saving+(saving*Bank.interestRate*0.8);}publicvoidshow(){System.out.println(Withnationaldebtrate,sum=+sum);}}classOneyearRateCalcuteextendsBank{privatefloatsaving;privatedoublesum;OneyearRateCalcute(floati){saving=i;count();}publicvoidcount(){sum=saving+(saving*Bank.oneyearRate*0.8);}publicvoidshow(){System.out.println(Withfixedrate,sum=+sum);}}classCalculate{publicstaticvoidmain(Stringargs[]){intmon=10000;OneyearRateCalcuterate=newOneyearRateCalcute(mon);rate.show();OneyearNationaldebtCalcutedebt=newOneyearNationaldebtCalcute(mon);debt.show();InterestRateCalcuteinterest=newInterestRateCalcute(mon);interest.show();}}(2)实验结果:78四、实验小结(包括问题和解决方法、心得体会等)本次实验中,我们主要练习编译了跟抽象类有关的相关程序。其中主要包括已知抽象方法编写抽象类、抽象类抽象方法实现多态性、通过定义多个子类来实现对类的继承。由于课前试验代码老师已经给出,所以我们完成得比较顺利。通过本次实验,我基本掌握了实现多态的方法,也练习了抽象类和抽象方法的定义和使用,都掌握得比较好。以后也还需要多加练习,能更加熟悉。五、指导教师评语成绩批阅人日期

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功