Java练习


实验4 类与对象(1)
1.实验目的
使用类来封装对象的属性和行为。
2.实验介绍
类是JaVa中最重要的数据类型。类的目的是抽象出一类事物的共有属性和行为,即抽象据以及在数据上所进行的操作。类的类体由两部分组成:变量的声明和方法的定义,其中的方法(方法名与类名相同,无类型)用于创建对象,其他的方法供该类创建的对象调用。
3.实验内容
编写一个Java应用程序,该程序中有两个类:Tank (用于刻画坦克)和Fight(主类)。要求如下。
(1) Tank 类有一个 double 类型的变量 speed,用于刻画坦克的速度,一个 int 型bulletAmount,用于刻画坦克的炮弹数量。在Tank类中定义speedUp()和speedDown()方法体现坦克有加速、减速行为,定义setBulleAmount(int p)方法,用于设置坦克炮弹的数量,fire()方法,体现坦克有开炮行为。
(2) 在主类Fight的main方法中用Tank 类创建两辆坦克,并让坦克调用方法设置炮弹的数量,显示坦克的加速、减速和开炮行为。速度不能超过220,还有刹车。
4. 实验步骤与代码
import java.util.Random;
public class Fight {
public static void main(String[] args) {
Tank tank1,tank2;
tank1=new Tank();
tank2=new Tank();
Random rd=new Random();
int s=rd.nextInt(220)+1; //定义tank1最大速度220
int d=rd.nextInt(220)+1; //定义tank2最大速度220
tank1.setBulletAmount(10);
tank2.setBulletAmount(10);
System.out.println("tank1的炮弹数量:"+tank1.getBulletAmount());
System.out.println("tank2的炮弹数量:"+tank2.getBulletAmount());
tank1.speedUp(s);
tank2.speedUp(d);
System.out.println("tank1的目前速度:"+tank1.getSpeed());
System.out.println("tank2的目前速度:"+tank2.getSpeed());
tank1.speedDown(10);
tank2.speedDown(15);
System.out.println("tank1减速目前速度:"+tank1.getSpeed());
System.out.println("tank2减速目前速度:"+tank2.getSpeed());
System.out.println("tank1开火:");
tank1.fire();
System.out.println("tank2开火:");
tank2.fire();
tank2.fire();
tank1.speedDown(220); //让tank1速度为0
tank2.speedDown(220); //让tank2速度为0
System.out.println("tank1刹车目前速度:"+tank1.getSpeed());
System.out.println("tank2刹车目前速度:"+tank2.getSpeed());
System.out.println("tank1的炮弹数量:"+tank1.getBulletAmount());
System.out.println("tank2的炮弹数量:"+tank2.getBulletAmount());
}
}
public class Tank {
double speed; //声明double型变量speed
int bulletAmount;
void speedUp(double s){
speed=s+speed;
}
void speedDown(int d){
if(speed-d>=0)
speed=speed-d;
else
speed=0;
}
void setBulletAmount(int m){
bulletAmount=m;
}
int getBulletAmount(){
return bulletAmount;
}
double getSpeed(){
return speed;
}
void fire(){
if(bulletAmount>=1){
bulletAmount=bulletAmount-1;
System.out.println("打出一发炮弹");
}
else{
System.out.println("没有炮弹了,无法开火!");
}
}
}
5.实验结果


