JAVA习题4参考答案_第1页
JAVA习题4参考答案_第2页
JAVA习题4参考答案_第3页
JAVA习题4参考答案_第4页
JAVA习题4参考答案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

习题四参照答案一、判断题1.对2.对3.错4.错5.对6.错8.错9.对10.对11.错12.对13.错14.对15.对16.错17.对18.对19.错20.错【解释】第3题:本题考察抽象类的特性。抽象类中可包括构造措施、抽象措施和详细实现的措施以及常量和变量,但不能直接实例化,一般可对抽象类的子类实例化,实例化对象引用可以是抽象类类型。第11题:本题考察子类中可以写的措施。子类可以继承父类的措施,也可以覆盖父类的措施,也可以新增长措施,新增长的措施与从父类继承的措施可构成重载。第13题:本题考察abstract的使用方法。abstract可修饰类和措施,但不能修饰属性,即不能修饰类的组员变量。第16题:本题考察final修饰的措施的特性。final修饰的措施不能被覆盖,但可以有重载的措施。二、选择题1.B2.B3、A4.B5.A6.C7.B8.D9.B10.B11.A12.D13、D14.A15.D16.D17、C18.D19、AD20、CD21、C22、C23、C24、B25.B26.D28.A【解释】第7题:本题考察对继承、覆盖和重载的理解,属于难点。本题4个选项中的措施名与父类定义的措施名都相似。选项A的措施有3个参数,选项C的措施有1个参数,都能与从父类继承的措施构成重载,可以加入子类Child中;选项B和选项D措施中的参数类型和个数都与父类定义的措施相似,由于父类定义的措施用public修饰,要想覆盖父类定义的措施,子类的措施也必须用public修饰,因此,选项D可以加入子类Child中,但选项B不行。第8、10、13和14题:这几题重要考察子类中具有覆盖措施的调用状况。子类对象调用措施时,首先调用子类中同名和参数形式(参数个数、类型和次序)一致的措施,否则就调用父类中定义的匹配的措施。第9题:本题考察对类实现接口的理解。在Java的接口中包括抽象措施和常量。类实现接口时,需实现接口中的所有措施,并可直接使用接口中定义的常量(等同于从接口中继承了这些常量)。本题中的接口B定义了"intk=10;”编译时会自动加上final,表达k为常量。因此,本题选B。第11题:本题考察父类中有static修饰和没有static修饰的措施被子类覆盖的情形。当父类的措施被static修饰时,子类中覆盖的措施也必须用static修饰。反之,父类的措施没有static修饰,子类中覆盖的措施也不用static修饰。因此,本题选A。第12和16题:这2题考察子类继承父类时构造措施的定义。子类继承父类时,若父类定义了有参数的构造措施,而没有定义无参数的构造措施,那么在子类中的构造措施必须用super语句去调用父类定义的有参数的构造措施,否则无法通过编译。因此,提议在定义父类时,如写了构造措施,最佳写上一种无参数的构造措施。第18题:本题考察类的继承。选项A中的m仅在父类的措施参数中定义,无法给变量i赋值;选项B中的b是非静态组员变量,在静态的main措施中无法直接给i赋值;父类定义的a是私有的,无法被子类继承,因此选项C也不对。选项D中的措施change是父类定义的公共措施,可以被子类继承和调用。因此,本题选D。第23题:本题考察类的构造措施。程序中第2行为构造措施,第5行为措施名,Test有void修饰,它不是构造措施,可作为实例措施。程序编译能通过。运行时,第9行实例化Test对象,调用第2行的构造措施,输出3;然后执行第9行调用第5行的措施,输出2;最终执行11行,输出1。因此,本题选C。第24题:本题考察子类实例化时的过程三、程序阅读题1.int2.(1)abstract(2)getName(3)extends(4)Stringmajor(5)getMajor3.324.resultOne=0resultTwo=48resultThree=205.PineTreeOops6.MyFunc7.输出成果为:28.hi!IamTomHowdoyoudo?9.第2行改为finaldoublePI=3.14;第5行的extends改为implements第10行的措施申明增长一种public,改为publicdoublearea()10.15111011.221四、编程题1.参照代码如下:publicclassCircle{doubleradius;publicCircle(){radius=0;}publicCircle(doubler){radius=r;}publicdoublegetRadius(){returnradius;}publicdoublegetPerimeter()(return2*Math.PI*radius;}publicdoublegetArea(){returnMath.PI*radius*radius;}publicvoiddisp(){System.out.println("圆的半径为"+getRadius()+"周长为"+getPerimeter()+"面积为"+getArea());}}publicclassCylinderextendsCircle{doubleheight;publicCylinder(doubler,doubleh){radius=r;height=h;}publicdoublegetHeight(){returnheight;}publicdoublegetCylinderArea(){return2*Math.PI*radius*(radius+height);}publicdoublegetVol(){returnMath.PI*radius*radius*height;}publicvoiddisVol(){System.out.println("圆柱体的体积为"+getVol());}}2.参照代码如下:interfaceShape{publicabstractdoublegetArea();}classCircleimplementsShape{privateintr;Circle(intr){this.r=r;}publicdoublegetArea(){return3.14*r*r;}}classTestCircle{publicstaticvoidmain(Stringargs[]){Circlec=newCircle(5);System.out.println("园的面积为:"+c.getArea());}}3.参照代码如下:interfaceshape{doublearea();)classTriangleimplementsshape{privatedoublea,b,c;publicTriangle(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}publicdoublearea(){doublep=(a+b+c)/2;returnMath.sqrt(p*(p-a)*(p-b)*(p-c));}}classCircleimplementsshape{privatedoubler;publicCircle(doubler)(this.r=r;}publicdoublearea(){returnMath.PI*r*r;}}classRectangleimplementsshape{privatedoublewidth,height;publicRectangle(doublej,doublek){width=j;height=k;}publicdoublearea(){returnwidth*height;}}publicclassTestShape{publicstaticvoidmain(Stringargs[]){shapes[]=newshape[3];s[0]=newTriangle(3,4,5);s[1]=newCircle(3.5);s[2]=newRectangle(3.5,4.0);for(inti=0;i<s.length;i++)System.out.println(s[i].area());}}4.不需要做5.(1)参照代码如下:abstractpublicclassAnimal{publicStringname;publicintage;publicdoubleweight;publicvoidshowInfo(){System.out.println("动物名为"+name+"年龄为"+age+"岁,重量为"+weight);}abstractpublicvoidmove();abstractpublicvoideat();}(2)参照代码如下:publicclassBirdextendsAnimal{publicBird(Stringname,intage,doubleweight){=name;this.age=age;this.weight=weight;}publicvoidshowInfo(){System.out.println("鸟名为"+name+"年龄为"+age+"重量为"+weight);}publicvoidmove(){System.out.println(name+"用翅膀在天空上!");}publicvoideat(){System.out.println(name+"喜欢吃虫子!");}}(3)参照代码如下:publicclassTestAnimal{publicstaticvoidmain(Stringargs[]){Animalbird=newBird("麻雀",1,0.3);bird.showInfo();bird.move();bird.eat();}6.参照代码如下:publicclassPeople{publicStringname;publicStringsex;publicStringbothnum;publicPeople(){};publicStringprintInfo(){return"姓名:"+name+'\n'+"性别:"+sex+'\n'+"出生年月:"+bothnum;}}classTeacherextendsPeople{publicStringschool;publicintworkID;publicStringprintInfo(){returnsuper.printInfo()+'\n'+"学校:"+school+'\n'+"工号:"+workID;}}classStudentextendsPeople{publicStringschool;publicintId;publicStringdiscipline;publicStringgrade;publicStringclasses;publicStringprintInfo(){returnsuper.printInfo()+'\n'+"学校:"+school+'\n'+"学号:"+Id+'\n'+"专业:"+discipline+'\n'+"年龄:"+grade+'\n'+"班级:"+classes;}}classTestPerson{publicstaticvoidmain(Stringargs[]){Teachert=newTeacher();="Tom";t.sex="男";t.bothnum="19820808";t.school="浙江工业大学";t.workID=010408;System.out.println(t.printInfo());Students=newStudent();="Jack";s.sex="男";s.bothnum="19920305";s.Id=266302;s.school="浙江工业大学";s.discipline="软件工程";s.grade="大一";s.classes="2班";System.out.println(s.printInfo());}}7.参照代码如下:publicclass证件{ String编号;String姓名;String出生年月;//格式mm/dd/yyString部门; public证件(){}public证件(Stringid,Stringname,Stringdate,Stringdept) {编号=id;姓名=name;出生年月=date;//格式mm/dd/yy}publicvoidsetID(Stringid){编号=id;}publicvoidsetName(Stringname){姓名=name;}publicvoidsetDate(Stringdd){出生年月=dd;}publicvoidsetDept(Stringdd){部门=dd;} publicvoiddisp(){System.out.println("姓名:"+姓名+"证件号:"+编号+"出生日期"+出生年月+"所属部门"+部门); }}class工作证extends证件{String职务;String发证日期;//格式mm/dd/yypublic工作证(){}public工作证(Stringid,Stringname,Stringdate,Stringdept,Stringtitle,Stringdd){ super(id,name,date,dept);职务=title;发证日期=dd; }publicvoidsetTitile(Stringdd){职务=dd;}publicvoidset发证日期(Stringdd){发证日期=dd;}publicvoiddisp(){super.disp();System.out.println("职务:"+职务+"发证日期:"+发证日期); }}class学生证extends证件{String专业;String入校时间;//格式mm/dd/yyString注册信息;public学生证(){}public学生证(Stringid,Stringname,Stringdate,Stringdept,Stringmajor,Stringdd,Stringmsg){ super(id,name,date,dept);专业=major;入校时间=dd;注册信息=msg;}publicvoiddisp(){super.disp();System.out.println("专业:"+专业+"入校时间:"+入校时间+"注册信息"+注册信息); }}8.(1)参照代码如下:interfaceAreaInterface(publicstaticfinaldoublepai=Math.PI;publicabstractdoublearea();}(2)参照代码如下:publicclassRectangleimplementsAreaInterface{privatedoublex;privatedoubley;publicRectangle(doublex,doubley){this.x=x;this.y=y;System.out.println("长方形的长:"+x+"宽为:"+y);}publicdoublearea(){returnx*y;}publicStringtoString(){return("长方形的面积:"+this.area());}}(3)参照代码如

温馨提示

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

评论

0/150

提交评论