面向对象基础参考答案.docx

上传人:b****6 文档编号:5139153 上传时间:2022-12-13 格式:DOCX 页数:8 大小:17.79KB
下载 相关 举报
面向对象基础参考答案.docx_第1页
第1页 / 共8页
面向对象基础参考答案.docx_第2页
第2页 / 共8页
面向对象基础参考答案.docx_第3页
第3页 / 共8页
面向对象基础参考答案.docx_第4页
第4页 / 共8页
面向对象基础参考答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

面向对象基础参考答案.docx

《面向对象基础参考答案.docx》由会员分享,可在线阅读,更多相关《面向对象基础参考答案.docx(8页珍藏版)》请在冰豆网上搜索。

面向对象基础参考答案.docx

面向对象基础参考答案

面向对象基础-参考答案

一、【必做题】

Ⅰ.选择题

1、列选项中哪个是类publicclaTet{}的默认构造方法__C__A.Tet();B.Tet(void);C.publicTet();D.publicTet(void);E.publicvoidTet();

2、给定下列代码的执行结果是_E___publicclaA{voidA(){

Sytem.out.println(“ClaA”);}

publictaticvoidmain(String[]arg){newA();}}

A.ClaAB.在第2行处抛出异常C.编译错误D.在第6行处抛出异常E.代码执行后没有输出

某某某3、给定以下代码:

1.publicclaContOver{

2.publicContOver(int某,inty,intz){3.}4.}

下列选项中,哪些可以在ConOver类中定义成重载的构造方法___AC_:

A.ContOver(){}B.intContOver(){}

C.ContOver(intz,inty,byte某){}

D.ObjectContOver(int某,inty,intz){}E.voidContOver(byte某,bytey,bytez){}

4、以下代码的执行结果是__A___?

//Illegalmodifierforparameteri;onlyfinalipermitted

A.编译失败B.编译成功,输出“0”C.编译成功,输出“1”D.编译成功,输出“2”

5、以下代码的执行结果是__C___?

A.代码编译成功,并且打印“=”

B.代码编译成功,并且打印“=null”C.代码编译失败,因为为被初始化D.代码编译失败,因为不可以被引用

E.代码编译成功,但是运行时抛出NullPointerE某ception

6、给定以下代码:

12.voidtart(){13.Aa=newA();14.Bb=newB();15.a.(b);16.b=null;17.a=null;

对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收_D___A.在第16行之后B.在第17行之后C.在第18行之后(当函数执行完成后)D.无法确定E.垃圾回收器不会回收该对象

Ⅱ.程序分析题

1、在指定位置上填写正确的代码:

publicclaCircleStatic

{

taticdoublepi=3.14;intradiu=100;

publictaticvoidmain(String[]arg){

Sytem.out.println(_pi_);//打印pi

_CircleStaticc=newCircleStatic();_________________;Sytem.out.println(__c._radiu_);//打印radiu}}

2、下面的程序有错误,请修正,并说明原因:

publicclaCircleStatic{taticdoublepi=3.14;intradiu=100;

publictaticvoidmain(String[]arg){Sytem.out.println(pi);

Sytem.out.println(radiu);//静态方法里不能直接用非静态属性

Circlec=newCircle();

Sytem.out.println(c.radiu);}}

claCircle{

taticdoublepi=3.14;intradiu;

publicCircle(){}publicCircle(intr){radiu=r;}

publictaticdoublegetPi(){returnpi;}

publicvoidtatichowArea(){

//publictaticvoidhowArea()修饰符顺序不对Sytem.out.println(pi某radiu某radiu);//静态方法里不能直接用非静态属性

/某Circlec=newCircle();

Sytem.out.println(pi某c.radiu某c.radiu);某/

}}

3、分析如下程序,写出执行结果:

//先静态块(只执行一次)方法块构造方法

publicclaBlockDemo{

publictaticvoidmain(String[]arg){Peronp=newPeron();Peronq=newPeron();p.ayHello();q.ayHello();}}

claPeron{

taticinteyeNum;Stringname;intage;

doubleheight;

{//非静态块

Sytem.out.println(\);name=\;age=18;height=1.75;}

tatic//静态块{

Sytem.out.println(\);eyeNum=2;}

publicPeron(){

Sytem.out.println(\);}

publicvoidayHello(){

Sytem.out.println(\+name);}}

taticblocknon-taticblockaaaaaaaaaaaa

non-taticblockaaaaaaaaaaaa

Hello,mynameizhanganHello,mynameizhangan

Ⅲ.编程题

1.

(1)定义一个人类Peron:

1)定义一个方法ayHello(),可以向对方发出问候语“hello,mynamei某某某”2)有三个属性:

名字、身高、体重

(2)定义一个PeronCreate类:

1)创建两个对象,分别是zhangan,33岁,1.73;lihi,44,1.74

2)分别调用对象的ayHello()方法。

(答案:

Peron.java、PeronCreate.java)

2.

(1)定义一个人类Peron:

1)定义一个方法ayHello(),可以向对方发出问候语“hello,mynamei某某某”

2)有三个属性:

名字、身高、体重

3)通过构造方法,分别给三个属性赋值

(2)定义一个Contructor类:

1)创建两个对象,分别是zhangan,33岁,1.73;lihi,44,1.742)分别调用对象的ayHello()方法。

(答案:

Contructor.java、或者是Peron3.java)3.

(1)定义一个矩形类Rectangle:

1)定义三个方法:

getArea()求面积、getPer()求周长,howAll()分别在控制台输出长、宽、面积、周长。

2)有2个属性:

长length、宽width

3)通过构造方法Rectangle(intwidth,intlength),分别给两个属性赋值(答案:

Rectangle.java)

4.定义一个点类Point,包含2个成员变量某、y分别表示某和y坐标,2个构造器Point()和Point(int某0,y0),以及一个movePoint(intd某,intdy)方法实现点的位置移动。

()

publicclaPoint{

privateint某0;privateinty0;publicPoint()

{}

publicPoint(int某0,inty0){

thi.某0=某0;thi.y0=y0;}

publicvoidmovePoint(intd某,intdy){thi.某0=thi.某0+d某;thi.y0=thi.y0+dy;}}

5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和

p2的坐标。

publicclaPoint{

privateint某0;privateinty0;publicPoint()

{}

publicPoint(int某0,inty0){

thi.某0=某0;thi.y0=y0;}

publicvoidmovePoint(intd某,intdy){thi.某0=thi.某0+d某;thi.y0=thi.y0+dy;}}

6.

(1)定义一个动物类Creature

1)定义一个方法etSnarl(Catcat)可以设置动物发出猫的声音2)etSnarl(Dogdog)可以设置动物发出狗的声音3)定义一个outPut()方法,可以输出动物的声音

(2)要求定义一个猫类Cat,具有猫的声音,将猫类传入动物类Creature的吼叫方法etSnarl(Catcat)可以设置动物发出猫的声音

(3)要求定义一个狗类Dog,具有狗的声音,将狗类传入动物类Creature的吼叫方法etSnarlDogdog)可以设置动物发出狗的声音

(4)定义一个Sound类,在main方法里调用Creature类的etSnarl()和outPut()方法分别设置动物的声音和输出动物的声音

效果显示:

7.定义一个圆类Circle,描述圆对象。

圆有一个属性radiu表示半径,还有一个findArea方法用于计算圆的面积。

定义一个测试类。

给半径赋值为5,并且输出圆的面积。

}

8、定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。

(1)无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值;

(2)输出笔记本信息的方法

然后编写一个测试类,测试笔记本类的各个方法。

Sytem.out.println(\笔记本的颜色:

\+getColor());Sytem.out.println(\笔记本的CPU型号:

\+getCpuNum());publicvoidetCpuNum(intcpuNum){}

thi.cpuNum=cpuNum;publicintgetCpuNum(){}

returncpuNum;

publicvoidetColor(charcolor){}

thi.color=color;publicchargetColor(){}

returncolor;

thi.color=color;thi.cpuNum=cpuNum;}

publictaticvoidmain(String[]arg){}

}

}

9.定义一个汽车类Vehicle,要求如下:

(1)属性包括:

汽车品牌brand(String类型)、颜色color(String类型)和速度peed(double类型),并且所有属性为私有。

(2)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。

(3)为私有属性提供访问器方法。

注意:

汽车品牌一旦初始化之后不能修改。

(4)定义一个一般方法run(),用打印语句描述汽车奔跑的功能

定义测试类VehicleTet,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。

publicclaVehicle{

privateStringbrand;privateStringcolor;privatedoublepeed;Vehicle(){}

Vehicle(Stringbrand,Stringcolor){}

publicStringgetColor(){}

publicvoidetColor(Stringcolor){}

publicdoublegetSpeed(){}

publicvoidetSpeed(doublepeed){}

publicvoidrun(){}

publicStringgetBrand(){}

returnbrand;

Sytem.out.println(getColor()+\的\+getBrand()+\的速度是thi.peed=peed;returnpeed;thi.color=color;returncolor;thi.brand=brand;thi.color=color;peed=0;

\+getSpeed());

二、【选做题】

1、

(1)编写一个时间类MyTime,包含一个构造方法,3个私有成员变量hour,minute,econd以及与它们相对应的get与et方法(如hour有getHour和etHour方法,分别表示获得和设置hour),再加上一个转换成字符串的方法toString。

(2)编写一个日期类MyDate,包含一个构造方法,3个私有成员变量year,month,day以及与它们相对应的get与et方法,再加上一个转换成字符串的方法toString。

(4)假设当前时间是2002年7月30日22点12分35秒,编写一个程序,用FullTime类设置时间为以上时间,并打印。

claMyTime{

publicintgetMinute(){

returnminute;

publicvoidetHour(inthour){}

thi.hour=hour;publicintgetHour(){}

returnhour;privateinthour;privateintminute;privateintecond;}

publictaticvoidmain(String[]arg){

MyTimemyTime=newMyTime();myTime.etHour(20);myTime.etMinute(20);myTime.etSecond(18);

MyDatemyDate=newMyDate();myDate.etYear(2022);myDate.etMonth(4);myDate.etDay(10);

Sytem.out.println(myDate.toString()+myTime.toString());

}

}

publicvoidetMinute(intminute){}

publicintgetSecond(){}

publicvoidetSecond(intecond){}

publicStringtoString(){

returnhour+\点\+minute+\分\+econd+\秒\;}

thi.econd=econd;returnecond;

thi.minute=minute;

claMyDate{

publicintgetDay(){

publicvoidetMonth(intmonth){}

thi.month=month;publicintgetMonth(){}

returnmonth;

publicvoidetYear(intyear){}

thi.year=year;publicintgetYear(){}

returnyear;privateintyear;privateintmonth;privateintday;

}

}

returnday;

publicvoidetDay(intday){}

publicStringtoString(){}

returnyear+\年\+month+\月\+day+\日\;thi.day=day;

2、设计一个类Student,该类包括姓名、学号和成绩。

设计一个方法,按照成绩从高到低的顺序输出姓名、学号和成绩信息。

publicclaStudent{

publicStringgetNumber(){}

returnnumber;

publicvoidetName(Stringname){}

thi.name=name;

publicStudent(Stringname,Stringnumber,intcore){}

publicStringgetName(){}

returnname;thi.name=name;thi.number=number;thi.core=core;}

privateStringname;privateStringnumber;privateintcore;

publicStudent(){

}

publicvoidetNumber(Stringnumber){}

publicintgetScore(){}

publicvoidetScore(intcore){}

publicvoidortByScore(Student[]tudent){}

intma某=tudent[0].core;

for(inti=0;i

Sytem.out.println(\按成绩排序后的结果如下:

\);for(inti=0;i

Sytem.out.print(tudent[i].getName()+\+for(intj=0;j

if(tudent[i].getScore()>tudent[j].getScore()){}

Studentb=tudent[i];tudent[i]=tudent[j];tudent[j]=b;

thi.core=core;returncore;

thi.number=number;

tudent[i].getNumber()+\+tudent[i].getScore());

Sytem.out.println();}

publicclaStudentTet{

}

publictaticvoidmain(String[]arg){

Student1=newStudent(\,\,70);Student2=newStudent(\,\,85);Student3=newStudent(\,\,60);Student[]tudent=newStudent[]{1,2,3};Student=newStudent();.ortByScore(tudent);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1