武汉大学java期末考试试题和答案_第1页
武汉大学java期末考试试题和答案_第2页
武汉大学java期末考试试题和答案_第3页
武汉大学java期末考试试题和答案_第4页
武汉大学java期末考试试题和答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐武汉大学java期末考试试题和答案

专班姓学号

……………密…………封……线…………

《Java程序设计基础》期末考试试卷(武汉高校试题)

(闭卷)

一、容易编程题(共50分)

在考试文件夹中新建一个应用程序proj1(应用程序的文件夹名称为proj1),根据以下要求编写程序代码。

1.在程序中定义Person类,为该类编写如下字段、构造器、拜访器、修改器和相应的其他办法。(20分)

(1)在Person类中定义两个字段:私有拜访权限,类型为String的name字段;私有拜访权限,类型为int的age字段。(2)在Person类中定义构造器

构造器有两个参数,第一个参数的类型是String,名字为name。其次个的类型是int,名字是age。第一个参数的值赋给字段name,其次个参数的值赋给字段age。

(3)为Person类的两个字段分离编写拜访器办法,办法名称分离为getName和getAge。getName办法返回类型为String的name字段的值;getAge办法返回类型为int的age字段的值。

(4)为Person类的两个字段分离编写修改器办法,办法名称分离为setName和setAge。setName办法有一个String类型的参数,办法中用该参数来设置字段name的值;setAge办法有一个int类型的参数,办法中用该参数来设置字段age的值,并且保证age字段的值不能为负数,假如要将age设置为负数则给出错误提醒。

(5)为Person类写一个叫做toString的办法,该办法不需要参数,有返回值。它返回一个字符串,字符串中包含name字段和age字段的值,假如name字段的值是“Helen”,age字段的值是20,则返回字符串:“Name:Helen.Age:20”。

2.在程序中定义Student类,Student类继承Person类。(10分)

(1)在Student类中除了继承其超类Person的name字段和age字段外,它还有自己的字段String类型的school,该字段的拜访权限为私有。

(2)Student类的构造器有三个参数,第一个参数为name,String类型;其次个参数为age,int类型;第三个参数为school,String类型,这三个参数的值分离赋给三个字段name、age和school。

(3)在Student类中重写其超类Person的toString办法,要求该办法返回的字符串不仅包含超类Person中的name字段和age字段的值,而且包含子类Student中的school字段的值。假如name字段的值是“Helen”,age字段的值是20,school字段的值是“山西高校商务学院”,则返回的字符串为“School:山西高校商务学院Name:Helen.Age:20”。

3.在程序中定义Test类,在Test类中定义一个main办法,在main办法中实现如下操作:(10分)

(1)创建一个Person类的对象,它的name为“John”,age为18,对象名为person1;(2)创建一个Student类的对象,它的name为“Helen”,age为18,school为“MIT”,对象名为stuent1;

(3)分离输出这两个对象的相关信息(调用它们的toString办法)。

4.分离为Person类和Student类编写文档解释,并生成应用程序的类文档。要求如

下:(10分)

(1)类的文档解释,包括类名、类的及版本号,的名字用考生的姓名标注,版本号使用考试的日期;

(2)构造器和各个办法的文档解释,包括办法的名称、构造器和办法的功能说明,要求标注构造器和办法中的参数及返回值,并说明参数的类型、名称和返回值的类型。

(3)文档解释完成后要使用BlueJ的JavaDOC工具生成应用程序的类文档。

二、代码改错(共20分)

在考试文件夹中的proj2工程中有五个类,每个类的代码中都存在错误,请先在出错的代码处用行解释语句标出错误缘由,然后修改程序代码中的错误。

专班姓学号

……………密…………封……线…………

注重:假如只改错或者只标出错误缘由都只给一半分数。

三、综合应用题(共30分)

考试文件夹下的proj3工程是一个关于俱乐部的应用程序,程序中有两个类:Club和Membership,分离代表俱乐部和俱乐部的会员。Membership类已经完成,可以直接使用。请根据要求将Club类的功能补充完整。

(1)在Club类中,定义一个ArrayList类型的字段members。该字段是程序中用来保存俱乐部会员信息的容器,为此要为该容器挑选正确的元素的类型。在Club类的构造器中,创建一个容器对象并赋值给这个字段。

(2)俱乐部的会员是以Membership类的对象来表达的,Membership的对象包含了一个人的姓名和他加入俱乐部的年代。在Club类中实现join办法,一个Membership对象通过Club对象的join办法加入到Club对象的容器中去,这个join办法的声明如下:

publicvoidjoin(Membershipmember)

(3)在Club类中实现numberOfMembers办法,该办法能够返回俱乐部的会员人数,办法声明如下:

publicintnumberOfMembers()

(4)在Club类里定义一个purge办法,办法的声明如下:publicArrayListpurge(intmonth,intyear)

purge办法能够找出俱乐部中指定年、月加入的会员,并将找到的会员从当前容器中移动到一个新的容器中,同时将该容器作为返回值返回。假如month参数超过了有效的范围(1~12),打印出一条错误信息,并返回一个空容器。

答案

(1)publicclassPerson

{

privateStringname;privateintage;

publicPerson(Stringname,intage){

=name;this.age=age;}

publicStringgetName(){

returnname;}

publicintgetAge(){

returnage;}

publicvoidsetName(StringnewName){

name=newName;}

publicvoidsetAge(intnewAge){

if(newAge>0){

System.out.println(newAge);}else{

System.out.println("error");}}

publicStringgettoString(){

return("Name:"+name+"Age:"+age);

专班姓学号……………密…………封……线……}

(2)publicclassStudentextendsPerson{

privateStringschool;

publicStudent(Stringname,intage,Stringschool){

super(name,age);

this.school=school;}

publicStringgetschool(){

returnschool;}

publicStringtoString(){

return("school:"+school+"Name:"+name+"Age:"+age);}}

(3)publicclassTest{

publicstaticvoidmain(String[]args){

Personperson1=newPerson("John",18);

Studentstudent1=newStudent("Helen",18,"MIT");System.out.println(person1.toString());System.out.println(student1.toString());}

(4)/**

*这是一个Person类*@author白金*@version2022.12*/

publicclassPerson{

protectedStringname;protectedintage;

publicPerson(Stringname,intage){

=name;this.age=age;}

publicStringgetName(){

returnname;}

publicintgetAge(){

returnage;}

publicvoidsetName(StringnewName){

name=newName;

专班姓学号……………密…………封……线……publicvoidsetAge(intnewAge){

if(newAge>0){

System.out.println(newAge);}else{

System.out.println("error");}}

publicStringtoString(){

return("Name:"+name+"Age:"+age);}}

(5)importjava.util.ArrayList;/**

*Storedetailsofclubmemberships.*

*@author(yourname)

*@version(aversionnumberoradate)*/

publicclassClub{

privateArrayListmembers;/**

*ConstructorforobjectsofclassClub*/

publicClub(){

members=newArrayList();

/**

*Addanewmembertotheclub'slistofmembers.*@parammemberThememberobjecttobeadded.*/

publicvoidjoin(Membershipmember){

members.add(member);}

publicintnumberOfMember(){

returnmembers

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论