java怎么拦截某个对象
664
2022-10-22
Java 汽车租赁系统详细实现代码
汽车租赁:
分为客车和轿车两种:
客车小于20座:500一天,大于20座:900一天。
轿车分为豪华和普通:豪华600一天,普通200一天。
效果图:
代码如下:
机动车类:
package busTest;
/*
机动车类
*/
public abstract class MotoVehicle {
private String carNumber; //车牌号
private String carBrand; // 车品牌
//构造方法
public MotoVehicle(){}
public MotoVehicle(String carNumber, String carBrand) {
this.carNumber = carNumber;
this.carBrand = carBrand;
}
// get/set
public String getCarNumber(){
return carNumber;
}
public void setCarNumber(String carNumber){
this.carNumber = carNumber;
}
public String getCarBrand(){
return carBrand;
}
public void setCarBrand(String carBrand){
this.carNumber = carNumber;
}
/*
计算租赁的方法
*/
public abstract int calRent(int days);
}
客车类:
package busTest;
public class Bus extends MotoVehicle {
private int setCount; //座位数
//通过构造方法初始化对象
public Bus(String carNUmber, String brand, int setCount) {
super(carNUmber, brand);
this.setCount = setCount;
}
@Override
public int calRent(int days) {
//根据座位数量来判断租赁的金额
if (this.setCount < 20) {
return days * 500;
} else {
return days * 900;
}
}
public void showBusInfo(int days) {
System.out.println("*");
System.out.println("\t车牌号:" + super.getCarNumber());
System.out.println("\t车品牌:" + super.getCarBrand());
System.out.println("\t座位数:" + this.setCount);
System.out.println("\t租赁天数:" + days);
System.out.println("\t金额:" + calRent(days));
}
}
轿车类:
package busTest;
public class Car extends MotoVehicle {
private String type; //汽车类型 普通/豪华
//通过构造方法初始化对象
public Car(String carNUmber, String brand, String type) {
super(carNUmber, brand);
this.type = type;
}
@Override
public int calRent(int days) {
//根据类型来决定价格
if ("豪车".equals(type)) {
return days * 600;
} else {
return days * 200;
}
}
public void showCarInfo(int days) {
System.out.println("*");
System.out.println("\t车牌号:" + super.getCarNumber());
System.out.println("\t车品牌:" + super.getCarBrand());
System.out.println("\t车类型:" + this.type);
System.out.println("\t租赁天数:" + days);
System.out.println("\t金额:" + calRent(days));
}
}
租车顾客类:
package busTest;
/*
顾客类
*/
import java.util.Scanner;
public class Customer {
private String name;
private int sum = 0;
//当不确定我的购物车内具体是轿车还是客车,那就以父亲类类型创建对象数组
MotoVehicle[] motos = new MotoVehicle[10];
Shttp://canner input = new Scanner(System.in);
public void showMenu() {
//定义一个父类机动车的对象,在下面可以接收
MotoVehicle moto = null;
System.out.println("******汽车租赁系统*******");
String answer;
do {
System.out.println("1、租赁客车 2、租赁轿车");
System.out.print("请输入编号:");
int num = input.nextInt();
if (num == 1) {
//创建租赁的客车对象
moto = rentBus();
} else if (num == 2) {
//创建租赁的轿车对象
moto = rentCar();
}
for (int i = 0; i < motos.length; i++) {
if (motos[i] == null) {
motos[i] = moto;
break;
}
}
System.out.print("是否继续租赁?:y/n");
answer = input.next();
} while (!"n".equals(answer));
System.out.print("请输入你的姓名:");
this.name = input.next();
System.out.print("租赁的天数:");
int days = input.nextInt();
//根据天数来统计租赁金额
calTotalRent(days);
//显示租赁的信息
showInfo(days);
}
private void showInfo(int days) {
System.out.println("---------------------租赁汽车信息---------------------");
for (int i = 0; i < motos.length; i++) {
MotoVehicle moto = this.motos[i];
if (moto != null) {
if (moto instanceof Bus) {
Bus bus = (Bus) moto;
bus.showBusInfo(days);
} else if (moto instanceof Car) {
Car car = (Car) moto;
car.showCarInfo(days);
}
}
}
System.out.println("\t顾客:" + this.name + "\t\t总金额:" + sum);
System.out.println("----------------------------------------------------");
}
private void calTotalRent(int days) {
int total = 0;
for (MotoVehicle moto : motos) {
if (moto != null) {
int rent = moto.calRent(days);
total += rent; //累加总金额
}
this.sum = total;// 把总金额复制给全局变量 sum
}
}
//轿车
private MotoVehicle rentCar() {
System.out.print("请输入轿车品牌:");
String brand = input.next();
System.out.print("请输入轿车车牌号:");
String carNumber = input.next();
System.out.print("请选择轿车类型[1、豪车 2、普通车:]");
int choise = input.nextInt();
String type;
if (choise == 1) {
type = "豪车";
} else {
type = "普通型";
}
return new Car(carNumber, brand, type);
}
//客车
private MotoVehicle rentBus() {
System.out.print("请输入客车品牌:");
String brand = input.next();
System.out.print("请输入客车车牌号:");
String carNumber = input.next();
System.out.print("请输入客车座位数:");
int seatCount = input.nextInt();
return new Bus(carNumber, brand, seatCount);
}
}
测试类:
package busTest;
public class TestMain {
public static void main(String[] args) {
Customer customer = new Customer();
customer.showMenu();
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~