实验4.1 机动车
一、实验目的
本实验的目的是让学生使用类来封装对象的属性和功能。
三、实验要求
编写一个简单的Java应用程序,该程序有两个类:Vehicle(用于刻画机动车)和User(主类)。具体要求如下:
- Vehicle类有个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。类中定义了speedUp(int s)方法,体现机动车有加速功能;定义了speedDown(int d)方法,体现机动车有减速功能;定义了setPower(int p)方法,用于设置机动车的功率;定义了getPower()方法,用于获取机动车的功率。机动车的UML图如图4.2所示。
- 在主类User的 main()方法中用Vehicle为创建对象,并让该对象调用方法设置功率,演示加速和减速功能。
四、程序效果示例
程序运行效果如图4.3所示。
图4.3 Vehicle类创建对象
运行结果如下:
五、程序模板
请按模板要求,将【代码】替换为Java程序代码。
【Vehicle.java】
public class Vehicle { double speed;//声明double型变量speed,刻画速度 int power; //声明int型变量power,刻画功率 void speedUp(int s) { speed = s+speed;//将参数s的值与成员变量speed的和赋值给成员变量speed } void speedDown(int d) { speed= speed-d; //将成员变量speed与参数d的差赋值给成员变量speed } void setPower(int p) { power = p; //将参数p的值赋值给成员变量power } int getPower() { return power; //返回成员变量power的值 } double getSpeed() { return speed; } }
【User.java】
public class User { public static void main(String args[]) { Vehicle car1, car2; car1 = new Vehicle(); //使用new运算符和默认的构造方法创建对象car1 car2 = new Vehicle();//使用new运算符和默认的构造方法创建对象car2 car1.setPower(128); car2.setPower(76); System.out.println("car1的功率是:"+car1.getPower()); System.out.println("car2的功率是:"+car2.getPower()); car1.speedUp(80);//car1调用speedUp()方法将自己的speed的值增加80 car2.speedUp(80);//car2调用speedUp()方法将自己的speed的值增加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。
void speedUp(int s) { if (s+speed > 200){ this.speed = 200; }else { this.speed = s+speed; };//将参数s的值与成员变量speed的和赋值给成员变量speed}
2. 改进speedDown()方法,使得Vehicle类的对象在减速时不能将speed值小于0。
(4)void speedDown(int d) { if(speed-d < 0){ this.speed=0; } else { this.speed= speed-d; //将成员变量speed与参数d的差赋值给成员变量speed }}
(3)增加一个刹车方法void brake(),Vehicle类的对象调用它能将speed的值变成0。
void brake(){ this.speed = 0;}
调用brake:
car1.brake();System.out.println("car1目前的速度:"+car1.getSpeed());
结果如下:
来源地址:https://blog.csdn.net/sziit1609030127/article/details/129509725