JAVA实验4-1答案.doc
- 文档编号:133134
- 上传时间:2022-10-04
- 格式:DOC
- 页数:6
- 大小:118.50KB
JAVA实验4-1答案.doc
《JAVA实验4-1答案.doc》由会员分享,可在线阅读,更多相关《JAVA实验4-1答案.doc(6页珍藏版)》请在冰豆网上搜索。
GDOU-B-11-112
广东海洋大学学生实验报告书(学生用表)
实验名称
实验四
(1).类与对象(第1部分)
课程名称
Java程序设计与开发技术
课程号
16232204
学院(系)
信息学院
专业
计算机科学与技术
班级
计科1131
学生姓名
彭德权
学号
201311621124
实验地点
钟海楼
04019
实验日期
2015年
9月24日
一、实验目的
(1)学习使用Java中的类来封装对象的属性和功能;
(2)学习掌握Java中对象的组合及参数传递。
二、实验任务
完成实验三指导上实验1、实验2的实验任务。
三、实验仪器设备和材料
安装有J2SE开发工具的PC机。
四、实验内容和步骤
实验1机动车
编写一个Java应用程序,改程序中有两个类:
Vehicle(用于刻画机动车)和User(主类)。
具体要求如实验指导所示。
代码如下:
Vehicle.java
publicclassVehicle{
privatedoublespeed;
privateintpower;
voidspeedUp(ints){
this.speed=this.speed+s;
}
voidspeedDown(ints){
this.speed=this.speed-s;
}
voidsetPower(intp){
this.power=p;
}
intgetPower(){
returnthis.power;
}
doublegetSpeed(){
returnthis.speed;
}
}
User.java
publicclassUser{
publicstaticvoidmain(Stringargs[]){
Vehiclecar1,car2;
car1=newVehicle();
car2=newVehicle();
car1.setPower(128);
car2.setPower(76);
System.out.println("car1的功率是:
"+car1.getPower());
System.out.println("car2的功率是:
"+car2.getPower());
car1.speedUp(80);
car2.speedUp(80);
System.out.println("car1目前的速度:
"+car1.getSpeed());
System.out.println("car2目前的速度:
"+car2.getSpeed());
car1.speedDown(10);
car2.speedDown(20);
System.out.println("car1目前的速度:
"+car1.getSpeed());
System.out.println("car2目前的速度:
"+car2.getSpeed());
}
}
运行结果:
课后的练习
(1)改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200。
voidspeedUp(ints){
if(this.speed+s>200){
System.out.println("速度不能超过200");
}
else{
this.speed=this.speed+s;
}
}
在主方法中更改为car1.speedUp(210);
运行结果:
(2)改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0。
voidspeedDown(ints){
if(this.speed-s<0){
System.out.println("速度不能少于0");
}
else{
this.speed=this.speed-s;
}
}
在主方法中更改为car1.speedUp(80);
car1.speedDown(90);
运行结果:
(3)增加一个刹车方法voidbrake(),Vehicle类的对象调用它将speed的值变成0。
voidbrake(){
this.speed=0;
}
在主方法中增加语句:
System.out.println("car1刹车");
car1.brake();
System.out.println("car1目前的速度:
"+car1.getSpeed());
运行结果:
实验2家中的电视
编写一个Java应用程序,模拟家庭购买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的电视成员。
具体要求如实验指导所示。
代码如下:
TV.java
publicclassTV{
intchannel;
voidsetChannel(intm){
if(m>=1){
channel=m;
}
}
intgetChannel(){
returnchannel;
}
voidshowProgram(){
switch(channel){
case1:
System.out.println("综合频道");
break;
case2:
System.out.println("经济频道");
break;
case3:
System.out.println("文艺频道");
break;
case4:
System.out.println("国际频道");
break;
case5:
System.out.println("体育频道");
break;
default:
System.out.println("不能收看"+channel+"频道");
}
}
}
Family.java
publicclassFamily{
TVhomeTV;
voidbuyTV(TVtv){
this.homeTV=tv;
}
voidremoteControl(intm){
homeTV.setChannel(m);
}
voidseeTV(){
homeTV.showProgram();
}
}
MainClass.java
publicclassMainClass{
publicstaticvoidmain(Stringargs[]){
TVhaierTV=newTV();
haierTV.setChannel(5);
System.out.println("haierTV的频道是"+haierTV.getChannel());
FamilyzhangSanFamily=newFamily();
zhangSanFamily.buyTV(haierTV);
System.out.println("zhangSanFamily开始看电视节目");
zhangSanFamily.seeTV();
intm=2;
System.out.println("zhangSanFamily将电视更换到"+m+"频道");
zhangSanFamily.remoteControl(m);
System.out.println("haierTV的频道是"+haierTV.getChannel());
System.out.println("zhangSanFamily再看电视节目");
zhangSanFamily.seeTV();
}
}
运行结果:
课后的练习
(1)省略代码2程序能否通过编译?
若能通过编译,程序输出的结果是怎样的?
能编译通过。
结果如下图,原因是对象内的元素channel是int型数据,默认值为0。
运行结果:
(2)在朱类main()方法的最后增添下列代码,并解释运行效果。
FamilyliiFamily=newFamily();
lisiFamily.buyTV(haierTV);
lisiFamily.seeTV();
因为zhangSanFamily和lisiFamily引用了同一个对象成员haierTV,
导致当zhangSanFamily调用方法remoteControl()改变channel的值时,
lisiFamily中的对象成员的channel值也会改变。
运行结果:
成绩
指导教师
孙兵
日期
2015年9月26日
注:
请用A4纸书写,不够另附纸。
第 页,共 页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)