您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 面向对象基础_参考答案
一、【必做题】Ⅰ.选择题1、列选项中哪个是类publicclassTest{}的默认构造方法__C__?A.Test();B.Test(void);C.publicTest();D.publicTest(void);E.publicvoidTest();2、给定下列代码的执行结果是_E___?publicclassA{voidA(){System.out.println(“ClassA”);}publicstaticvoidmain(String[]args){newA();}}A.ClassAB.在第2行处抛出异常C.编译错误D.在第6行处抛出异常E.代码执行后没有输出***3、给定以下代码:1.publicclassConstOver{2.publicConstOver(intx,inty,intz){3.}4.}下列选项中,哪些可以在ConsOver类中定义成重载的构造方法___AC_:A.ConstOver(){}B.intConstOver(){}C.ConstOver(intz,inty,bytex){}D.ObjectConstOver(intx,inty,intz){}E.voidConstOver(bytex,bytey,bytez){}4、以下代码的执行结果是__A___?//Illegalmodifierforparameteri;onlyfinalispermittedA.编译失败B.编译成功,输出“0”C.编译成功,输出“1”D.编译成功,输出“2”5、以下代码的执行结果是__C___?A.代码编译成功,并且打印“s=”B.代码编译成功,并且打印“s=null”C.代码编译失败,因为s为被初始化D.代码编译失败,因为s不可以被引用E.代码编译成功,但是运行时抛出NullPointerException6、给定以下代码:12.voidstart(){13.Aa=newA();14.Bb=newB();15.a.s(b);16.b=null;17.a=null;18.System.out.println(“startcompleted”);}对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收_D___?A.在第16行之后B.在第17行之后C.在第18行之后(当函数执行完成后)D.无法确定E.垃圾回收器不会回收该对象Ⅱ.程序分析题1、在指定位置上填写正确的代码:publicclassCircleStatic{staticdoublepi=3.14;intradius=100;publicstaticvoidmain(String[]args){System.out.println(_pi_);//打印pi_CircleStaticc=newCircleStatic();_________________;System.out.println(__c._radius_);//打印radius}}2、下面的程序有错误,请修正,并说明原因:publicclassCircleStatic{staticdoublepi=3.14;intradius=100;publicstaticvoidmain(String[]args){System.out.println(pi);System.out.println(radius);//静态方法里不能直接用非静态属性Circlec=newCircle();System.out.println(c.radius);}}classCircle{staticdoublepi=3.14;intradius;publicCircle(){}publicCircle(intr){radius=r;}publicstaticdoublegetPi(){returnpi;}publicvoidstaticshowArea(){//publicstaticvoidshowArea()修饰符顺序不对System.out.println(pi*radius*radius);//静态方法里不能直接用非静态属性/*Circlec=newCircle();System.out.println(pi*c.radius*c.radius);*/}}3、分析如下程序,写出执行结果://先静态块(只执行一次)方法块构造方法publicclassBlockDemo{publicstaticvoidmain(String[]args){Personp=newPerson();Personq=newPerson();p.sayHello();q.sayHello();}}classPerson{staticinteyeNum;Stringname;intage;doubleheight;{//非静态块System.out.println(non-staticblock);name=zhangsan;age=18;height=1.75;}static//静态块{System.out.println(staticblock);eyeNum=2;}publicPerson(){System.out.println(aaaaaaaaaaaa);}publicvoidsayHello(){System.out.println(Hello,mynameis+name);}}staticblocknon-staticblockaaaaaaaaaaaanon-staticblockaaaaaaaaaaaaHello,mynameiszhangsanHello,mynameiszhangsanⅢ.编程题1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,mynameisXXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,mynameisXXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。2)有2个属性:长length、宽width3)通过构造方法Rectangle(intwidth,intlength),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(intx0,y0),以及一个movePoint(intdx,intdy)方法实现点的位置移动。()publicclassPoint{privateintx0;privateinty0;publicPoint(){}publicPoint(intx0,inty0){this.x0=x0;this.y0=y0;}publicvoidmovePoint(intdx,intdy){this.x0=this.x0+dx;this.y0=this.y0+dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。publicclassPoint{privateintx0;privateinty0;publicPoint(){}publicPoint(intx0,inty0){this.x0=x0;this.y0=y0;}publicvoidmovePoint(intdx,intdy){this.x0=this.x0+dx;this.y0=this.y0+dy;}}6.(1)定义一个动物类Creature1)定义一个方法setSnarl(Catcat)可以设置动物发出猫的声音2)setSnarl(Dogdog)可以设置动物发出狗的声音3)定义一个outPut()方法,可以输出动物的声音(2)要求定义一个猫类Cat,具有猫的声音,将猫类传入动物类Creature的吼叫方法setSnarl(Catcat)可以设置动物发出猫的声音(3)要求定义一个狗类Dog,具有狗的声音,将狗类传入动物类Creature的吼叫方法setSnarlDogdog)可以设置动物发出狗的声音(4)定义一个Sound类,在main方法里调用Creature类的setSnarl()和outPut()方法分别设置动物的声音和输出动物的声音效果显示:7.定义一个圆类Circle,描述圆对象。圆有一个属性radius表示半径,还有一个findArea方法用于计算圆的面积。定义一个测试类。给半径赋值为5,并且输出圆的面积。}8、定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。(1)无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值;(2)输出笔记本信息的方法然后编写一个测试类,测试笔记本类的各个方法。publicclassComputeTest{publicstaticvoidmain(String[]args){Computerc1=newComputer();c1.showComputer();Computerc2=newComputer('红',32);c2.showComputer();}}classComputer{privatecharcolor;privateintcpuNum;publicComputer(){}publicComputer(charcolor,intcpuNum){this.color=color;this.cpuNum=cpuNum;}publicchargetColor(){returncolor;}publicvoidsetColor(charcolor){this.color=color;}publicintgetCpuNum(){returncpuNum;}publicvoidsetCpuNum(intcpuNum){this.cpuNum=cpuNum;}publicvoidshowComputer(){System.out.println(笔记本的颜色:+getColor());System.out.println(笔记本的CPU型号:+getCpuNum());}}9.定义一个汽车类Vehicle,要求如下:(1)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型),并且所有属性为私有。(2)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。(3)为私有属性提供访问器方法。注意:汽车品牌一旦初始化之后不能修改。(4)定义一个一般方法run(),用打印语句描述汽车奔跑的功能定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。publicclassVehicle{privateStringbrand;privateStringcolor;privatedoublespeed;Vehicle(){}Vehicle(Stringbrand,Stringcolor){this.brand=brand;this.color=color;speed=0;}publicStringgetColor
本文标题:面向对象基础_参考答案
链接地址:https://www.777doc.com/doc-1980777 .html