面向对象基础参考答案文档格式.docx
- 文档编号:18108593
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:8
- 大小:17.79KB
面向对象基础参考答案文档格式.docx
《面向对象基础参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象基础参考答案文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
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;
publictaticvoidmain(String[]arg){Sytem.out.println(pi);
Sytem.out.println(radiu);
//静态方法里不能直接用非静态属性
Circlec=newCircle();
Sytem.out.println(c.radiu);
claCircle{
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//静态块{
eyeNum=2;
publicPeron(){
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类:
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的坐标。
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;
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.brand=brand;
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;
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.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(\按成绩排序后的结果如下:
\);
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;
returncore;
tudent[i].getNumber()+\+tudent[i].getScore());
Sytem.out.println();
publicclaStudentTet{
Student1=newStudent(\,\,70);
Student2=newStudent(\,\,85);
Student3=newStudent(\,\,60);
Student[]tudent=newStudent[]{1,2,3};
Student=newStudent();
.ortByScore(tudent);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 基础 参考答案
