还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
期末复习试卷
(五)
1、程序题
1、请根据UML图,代码实现Person类、Student类和Volunteer接口的定义解题要求编写测试程序,创建一个名为”Tom”的一年级学生,这名学生参加了“北京青年志愿者协会”的活动输出该学生的姓名、年级及所属社团的信息效果如下interfaceVolunteer{ publicabstractStringvolunteerStringorganization;}classPerson{ privateStringname; publicPerson{ } publicPersonStringname{ this.name=name; } @Override publicStringtoString{ return姓名+this.name+\n; }}classStudentextendsPersonimplementsVolunteer{ privateintgrade; publicstaticfinalintFRESHMAN=1; publicstaticfinalintSOPHOMORE=2; publicstaticfinalintJUNIOR=3; publicstaticfinalintSENIOR=4; publicStudentStringnameintgrade{ supername; this.grade=grade; } @Override publicStringtoString{ returnsuper.toString+ 年级+this.grade+\n; } @Override publicStringvolunteerStringorganization{ returnorganization; }}publicclassTest{ publicstaticvoidmainString[]args{ Studentstudent=newStudentTom1; System.out.printlnstudent+所属社团+student.volunteer北京青年志愿者协会+\n; }}
2、根据给定的GeometricObject类层次图,分别实现GeometricObject、Circle和Triangle类要求
(1)按照类图,定义各类的数据域属性和方法
(2)默认的GeometricObject的颜色为white默认的Circle对象的半径为10默认的Triangle对象的三边为(3,4,5)
(3)GeometricObject类的toString方法,返回对象的颜色信息Circle和Triangle的toString方法,覆盖父类的toString,分别返回包括颜色信息、半径或边长的信息
(4)
(5)Circle和Triangle类分别覆盖实现getPerimeter编写一个用户程序:
(1)创建一个几何对象数组object;
(2)分别存放一个默认的圆、一个半径为20的圆、一个默认的三角形和一个三边为(10,20,15)的三角形;
(3)计算这一组几何对象的总周长并输出;
(4)使用toString输出每个几何对象的相关信息;解题要求写出程序代码定义一个Java源文件,名为Test.java,其中包括用户类Test、GeometricObject类、Circle类和Triangle类的定义abstractclassGeometricObjectimplementsComparablegeometricobject{privateStringcolor=white;protectedGeometricObject{}protectedGeometricObjectStringcolor{this.color=color;}publicStringgetColor{returncolor;}publicvoidsetColorStringcolor{this.color=color;}@OverridepublicintcompareToGeometricObjecto{ifthis.getPerimetero.getPerimeterreturn1;elseifthis.getPerimetero.getPerimeterreturn-1;elsereturn0;}publicStringtoString{return颜色+color+\n;}publicabstractdoublegetPerimeter;}classCircleextendsGeometricObject{privatedoubleradius;publicCircle{this.radius=
10.0;}publicCircledoubleradius{this.radius=radius;}publicCircleStringcolordoubleradius{supercolor;this.radius=radius;}publicdoublegetRadius{returnradius;}publicvoidsetRadiusdoubleradius{this.radius=radius;}@OverridepublicdoublegetPerimeter{return2*radius*Math.PI;}publicStringtoString{returnsuper.toString+圆的半径是+radius+\n;}}classTriangleextendsGeometricObject{privatedoubleside1;privatedoubleside2;privatedoubleside3;publicTriangle{this.side1=
3.0;this.side2=
4.0;this.side3=
5.0;}publicTriangledoubleside1doubleside2doubleside3{this.side1=side1;this.side2=side2;this.side3=side3;}publicTriangleStringcolordoubleside1doubleside2doubleside3{supercolor;this.side1=side1;this.side2=side2;this.side3=side3;}@OverridepublicdoublegetPerimeter{returnside1+side2+side3;}@OverridepublicStringtoString{returnsuper.toString+三角形的三条边是+side1++side2++side3+\n;}}publicclassTest{publicstaticvoidmainString[]args{//创建对象数组GeometricObject[]object={newCirclenewCircle20newTrianglenewTriangle102015};doubletotalPerimeter=0;//自己学习一下这种for循环的使用方法forGeometricObjectgo:objecttotalPerimeter+=go.getPerimeter;System.out.printlnThetotalperimeteris+totalPerimeter;forGeometricObjectgo:objectSystem.out.printlngo.toString;/*抽象类GeometricObject实现了Comparable接口之后,所有子类(Circle和Triangle)的对象就可以比较大小了,由此也就可以调用Arrays的sort方法对上面的对象数组排序了*/java.util.Arrays.sortobject;forinti=0;iobject.length;i++System.out.printlnThe+i+thshortperimeteris+object[i].getPerimeter;}}
3、根据UML图,实现Person类、Faculty类和Volunteer接口的定义解题要求编写用户测试程序,创建一个名为“Jerry”的副教授他参加了“北京市慈善义工协会”的活动,输出其姓名、职称和所属社团信息效果如下classPerson{privateStringname;publicPerson{}publicPersonStringname{this.name=name;}@OverridepublicStringtoString{return姓名+this.name+\n;}} interfaceVolunteer{ publicabstractStringvolunteerStringorganization; }classFacultyextendsPersonimplementsVolunteer{privateStringtitle;publicstaticfinalStringTEACHING_ASSISTANT=助教;publicstaticfinalStringLECTURER=讲师;publicstaticfinalStringASSOCIATE_PROFESSOR=副教授;publicstaticfinalStringPROFESSOR=教授;publicFacultyStringnameStringtitle{supername;this.title=title;}@OverridepublicStringtoString{returnsuper.toString+职称+this.title+\n;}@OverridepublicStringvolunteerStringorganization{returnorganization;}}publicclassTestPerson{publicstaticvoidmainString[]args{Facultyfaculty=newFacultyJerry副教授;System.out.printlnfaculty+所属社团+faculty.volunteer北京市慈善义工协会;}}
4、请根据UML图给出类Person、类Student、Faculty类和接口Volunteer的定义实现解题要求编写测试程序,创建一个名为“Tom”的一年级学生、“北京青年志愿者协会”成员,创建一个名为“JERRY”的助教、“北京市慈善义工协会”成员,输出两个人的姓名、年级和所属志愿者协会的基本信息效果如下interfaceVolunteer{ publicabstractStringvolunteerStringorganization;}classPerson{privateStringname;publicPerson{}publicPersonStringname{this.name=name;}@OverridepublicStringtoString{return姓名+this.name+\n;}}classStudentextendsPersonimplementsVolunteer{privateintgrade;publicstaticfinalintFRESHMAN=1;publicstaticfinalintSOPHOMORE=2;publicstaticfinalintJUNIOR=3;publicstaticfinalintSENIOR=4;publicStudentStringnameintgrade{supername;this.grade=grade;}@OverridepublicStringtoString{returnsuper.toString+年级+this.grade+\n;}@OverridepublicStringvolunteerStringorganization{returnorganization;}}classFacultyextendsPersonimplementsVolunteer{privateStringtitle;publicstaticfinalStringTEACHING_ASSISTANT=助教;publicstaticfinalStringLECTURER=讲师;publicstaticfinalStringASSOCIATE_PROFESSOR=副教授;publicstaticfinalStringPROFESSOR=教授;publicFacultyStringnameStringtitle{supername;this.title=title;}@OverridepublicStringtoString{returnsuper.toString+职称+this.title+\n;}@OverridepublicStringvolunteerStringorganization{returnorganization;}}publicclassTest{publicstaticvoidmainString[]args{Studentstudent=newStudentTom1;Facultyfaculty=newFacultyJerry副教授;System.out.printlnstudent+所属社团+student.volunteer北京青年志愿者协会+\n;System.out.printlnfaculty+所属社团+faculty.volunteer北京市慈善义工协会;}}。