实验四-类与对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四类与对象
1.实验目的
1、使用类来封装对象的属性和行为;
2、掌握对象的组合以及参数传递;
3、掌握类变量与实例变量,以及类方法与实例方法的区别
2.实验内容
1、参考教科书,完成下面实验:
1)实验1 Tank类
2)实验2 计算机与光盘
3)实验3 家族的姓氏
4)实验4 三角形、梯形和圆形的类封装
5)实验5 实例成员与类成员
2、完成习题:
1)根据要求修改实验1,改进speedUP方法,使得Tank类的对象加速时不能将speed值超过220;增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成0。
2)根据要求修改实验2,主类中再增加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。
3、提高题
编写储蓄账户类及测试类,模拟存款,参考以下运行方式:
(1)新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。
(2)提示用户从键盘输入储蓄账户编号。
(3)若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。
(4)相应储蓄账户的余额被更新。
(5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。
(6)若输入的储蓄账户编号与新开的5个储蓄账户编号均无法匹配,显示错误提示,并询问是否还要继续存款。
(7)用户输入yes,继续执行步骤(2),否则显示退出信息。
最基本要求:绘制UML类图;储蓄账户的余额必须确保大于等于0。
3.实验步骤
参考教材中相关的实验。
4.评分标准
1.A——内容功能完善,编程风格好,人机接口界面好;
2.B——内容功能完善,编程风格良好,人机接口界面良好;
3.C——完成必做内容;
4.D——能完成必做内容;
5.E——未按时完成必做内容,或者抄袭(雷同者全部为E).
参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP)
实验1 Tank类
模板代码
Tank.java
public class Tank {
//【代码1】//声明double型变量speed,刻画速度
//【代码2】//声明int型变量bulletAmount,刻画炮弹数量
void speedUp(int s){
//【代码3】//s+speed赋值给speed
}
void speedDown(int d){
if(speed-d>=0)
//【代码4】//d-speed赋值给speed
else
speed=0;
}
int getBulletAmount() {
return bulletAmount;
}
void setBulletAmount(int m) {
bulletAmount = m;
}
double getSpeed() {
return speed;
}
void fire(){
if(bulletAmount>=1){
//【代码5】//将bulletAmount-1赋值给bulletAmount
System.out.println("打出一发炮弹");
}
else{
System.out.println("没有炮弹了,无法开火");
}
}
}
Fight.java
public class Fight {
public static void main(String[] args) {
Tank tank1,tank2;
tank1=new Tank();
tank2=new Tank();
tank1.setBulletAmount(10);
tank2.setBulletAmount(10);
System.out.println("tank1的炮弹数量:"+tank1.getBulletAmount());
System.out.println("tank2的炮弹数量:"+tank2.getBulletAmount());
tank1.speedUp(80);
tank2.speedUp(90);
System.out.println("tank1目前的速度:"+tank1.getSpeed());
System.out.println("tank2目前的速度:"+tank2.getSpeed());
tank1.speedDown(15);
tank2.speedDown(30);
System.out.println("tank1目前的速度:"+tank1.getSpeed());
System.out.println("tank2目前的速度:"+tank2.getSpeed());
System.out.println("tank1开火:");
tank1.fire();
System.out.println("tank2开火:");
tank2.fire();
System.out.println("tank1的炮弹数量:"+tank1.getBulletAmount());
System.out.println("tank2的炮弹数量:"+tank2.getBulletAmount());
}
}
实验2 计算机与光盘
模板代码
CD.java
public class CD {
int size;