面向对象基础参考答案.docx
《面向对象基础参考答案.docx》由会员分享,可在线阅读,更多相关《面向对象基础参考答案.docx(13页珍藏版)》请在冰豆网上搜索。
![面向对象基础参考答案.docx](https://file1.bdocx.com/fileroot1/2022-11/30/546d9910-1034-4c48-9117-070824ac2938/546d9910-1034-4c48-9117-070824ac29381.gif)
面向对象基础参考答案
一、【必做题】
Ⅰ.选择题
1、列选项中哪个是类publicclassTest{}的默许构造方式__C__?
A.Test();
B.Test(void);
C.publicTest();
D.publicTest(void);
E.publicvoidTest();
2、给定下列代码的执行结果是_E___?
publicclassA{
voidA(){
A”);
}
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___?
编译失败B.编译成功,输出“0”
C.编译成功,输出“1”D.编译成功,输出“2”
5、以下代码的执行结果是__C___?
A.代码编译成功,而且打印“s=”
B.代码编译成功,而且打印“s=null”
C.代码编译失败,因为s为被初始化
D.代码编译失败,因为s不可以被引用
E.代码编译成功,可是运行时抛出NullPointerException
6、给定以下代码:
12.voidstart(){
13.Aa=newA();
14.Bb=newB();
15.(b);
16.b=null;
17.a=null;
18.completed”);
}
对于在第14行创建的对象b,系统何时会对它进行垃圾回收_D___?
A.在第16行以后B.在第17行以后
C.在第18行以后(当函数执行完成后)D.无法肯定
E.垃圾回收器不会回收该对象
Ⅱ.程序分析题
1、在指定位置上填写正确的代码:
publicclassCircleStatic
{
staticdoublepi=;
intradius=100;
publicstaticvoidmain(String[]args)
{
_pi_);程题
1.
(1)概念一个人类Person:
1)概念一个方式sayHello(),可以向对方发出问候语“hello,mynameisXXX”
2)有三个属性:
名字、身高、体重
(2)概念一个PersonCreate类:
1)创建两个对象,别离是zhangsan,33岁,;lishi,44,
2)别离挪用对象的sayHello()方式。
(答案:
、)
2.
(1)概念一个人类Person:
1)概念一个方式sayHello(),可以向对方发出问候语“hello,mynameisXXX”
2)有三个属性:
名字、身高、体重
3)通过构造方式,别离给三个属性赋值
(2)概念一个Constructor类:
1)创建两个对象,别离是zhangsan,33岁,;lishi,44,
2)别离挪用对象的sayHello()方式。
(答案:
、或是)
3.
(1)概念一个矩形类Rectangle:
1)概念三个方式:
getArea()求面积、getPer()求周长,showAll()别离在控制台输出长、宽、面积、周长。
2)有2个属性:
长length、宽width
3)通过构造方式Rectangle(intwidth,intlength),别离给两个属性赋值(答案:
)
4.概念一个点类Point,包括2个成员变量x、y别离表示x和y坐标,2个构造器Point()和Point(intx0,y0),和一个movePoint(intdx,intdy)方式实现点的位置移动。
()
publicclassPoint{
privateintx0;
privateinty0;
publicPoint()
{
}
publicPoint(intx0,inty0)
{
=x0;
=y0;
}
publicvoidmovePoint(intdx,intdy){
=+dx;
=+dy;
}
}
5.编写一个程序,创建两个Point对象p一、p2,别离调研movePoint方式后,打印p1和p2的坐标。
publicclassPoint{
privateintx0;
privateinty0;
publicPoint()
{
}
publicPoint(intx0,inty0)
{
=x0;
=y0;
}
publicvoidmovePoint(intdx,intdy){
=+dx;
=+dy;
}
}
6.
(1)概念一个动物类Creature
1)概念一个方式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();
();
Computerc2=newComputer('红',32);
();
}
}
classComputer{
privatecharcolor;
privateintcpuNum;
publicComputer(){
}
publicComputer(charcolor,intcpuNum){
=color;
=cpuNum;
}
publicchargetColor(){
returncolor;
}
publicvoidsetColor(charcolor){
=color;
}
publicintgetCpuNum(){
returncpuNum;
}
publicvoidsetCpuNum(intcpuNum){
=cpuNum;
}
publicvoidshowComputer(){
"笔记本的颜色:
"+getColor());
"笔记本的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){
=brand;
=color;
speed=0;
}
publicStringgetColor(){
returncolor;
}
publicvoidsetColor(Stringcolor){
=color;
}
publicdoublegetSpeed(){
returnspeed;
}
publicvoidsetSpeed(doublespeed){
=speed;
}
publicvoidrun(){
"的"+getBrand()+"的速度是"+getSpeed());
}
publicStringgetBrand(){
returnbrand;
}
二、【选做题】
1、
(1)编写一个时间类MyTime,包括一个构造方式,3个私有成员变量hour,minute,second和与它们相对应的get与set方式(如hour有getHour和setHour方式,别离表示取得和设置hour),再加上一个转换成字符串的方式toString。
(2)编写一个日期类MyDate,包括一个构造方式,3个私有成员变量year,month,day和与它们相对应的get与set方式,再加上一个转换成字符串的方式toString。
(3)编写一个FullTime类,包括一个MyTime类型的私有成员变量time和一个MyDate类型的成员变量date,和与它们相对应的get与set方式,一个构造方式,再加上一个转换成字符串的方式toString。
(4)假设当前时间是2002年7月30日22点12分35秒,编写一个程序,用FullTime类设置时间为以上时间,并打印。
publicclassMytimeTest{
publicstaticvoidmain(String[]args){
MyTimemyTime=newMyTime();
(20);
(20);
(18);
MyDatemyDate=newMyDate();
(2012);
(4);
(10);
+());
}
}
classMyTime{
privateinthour;
privateintminute;
privateintsecond;
publicintgetHour(){
returnhour;
}
publicvoidsetHour(inthour){
=hour;
}
publicintgetMinute(){
returnminute;
}
publicvoidsetMinute(intminute){
=minute;
}
publicintgetSecond(){
returnsecond;
}
publicvoidsetSecond(intsecond){
=second;
}
@Override
publicStringtoString(){
returnhour+"点"+minute+"分"+second+"秒";
}
}
classMyDate{
privateintyear;
privateintmonth;
privateintday;
publicintgetYear(){
returnyear;
}
publicvoidsetYear(intyear){
=year;
}
publicintgetMonth(){
returnmonth;
}
publicvoidsetMonth(intmonth){
=month;
}
publicintgetDay(){
returnday;
}
publicvoidsetDay(intday){
=day;
}
@Override
publicStringtoString(){
returnyear+"年"+month+"月"+day+"日";
}
}
2、设计一个类Student,该类包括姓名、学号和成绩。
设计一个方式,依照成绩从高到低的顺序输出姓名、学号和成绩信息。
publicclassStudent{
privateStringname;
privateStringnumber;
privateintscore;
publicStudent(){
}
publicStudent(Stringname,Stringnumber,intscore){
=name;
=number;
=score;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
publicStringgetNumber(){
returnnumber;
}
publicvoidsetNumber(Stringnumber){
=number;
}
publicintgetScore(){
returnscore;
}
publicvoidsetScore(intscore){
=score;
}
publicvoidsortByScore(Student[]students){
intmax=students[0].score;
for(inti=0;i<;i++){
for(intj=0;j<;j++){
if(students[i].getScore()>students[j].getScore()){
Studentb=students[i];
students[i]=students[j];
students[j]=b;
}
}
}
"按成绩排序后的结果如下:
");
for(inti=0;i<;i++){
+""+students[i].getNumber()+""+students[i].getScore());
}
}
}
publicclassStudentTest{
publicstaticvoidmain(String[]args){
Students1=newStudent("Kitty","0000001",70);
Students2=newStudent("Dingdang","0000002",85);
Students3=newStudent("Tom","0000003",60);
Student[]students=newStudent[]{s1,s2,s3};
Students=newStudent();
(students);
}
}