You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
2.4 KiB
49 lines
2.4 KiB
package com.rental;
|
|
|
|
public class TestCar {
|
|
public static void main(String[] args) {
|
|
System.out.println("===== 开始测试 Car 类 =====");
|
|
|
|
// 1. 创建至少3个Car对象(使用不同构造方法)
|
|
System.out.println("\n1. 创建车辆对象:");
|
|
Car car1 = new Car("京A12345", "丰田", "凯美瑞", 450.0);
|
|
Car car2 = new Car("沪B56789", "宝马", "X5"); // 使用默认租金300
|
|
Car car3 = new Car("粤C99999", "特斯拉", "Model 3", 600.0);
|
|
|
|
// 显示初始信息
|
|
car1.displayInfo();
|
|
car2.displayInfo();
|
|
car3.displayInfo();
|
|
|
|
// 2. 测试租车、还车业务逻辑
|
|
System.out.println("\n2. 测试租车与还车业务:");
|
|
System.out.println("--- 测试 car1 (正常流程) ---");
|
|
car1.rentCar(); // 第一次租,应成功
|
|
car1.rentCar(); // 第二次租,应提示“已租出”
|
|
car1.returnCar(); // 第一次还,应成功
|
|
car1.returnCar(); // 第二次还,应提示“无需归还”
|
|
|
|
System.out.println("\n--- 测试 car2 (直接尝试归还) ---");
|
|
car2.returnCar(); // 未租就还,应提示“无需归还”
|
|
|
|
// 3. 测试 calculateRent 方法
|
|
System.out.println("\n3. 测试租金计算:");
|
|
double rent = car3.calculateRent(5);
|
|
System.out.printf("车辆 %s 租用5天的费用为:%.2f 元\n", car3.getLicensePlate(), rent);
|
|
|
|
// 4. 测试 setter 数据校验 (日租金)
|
|
System.out.println("\n4. 测试日租金Setter的数据校验:");
|
|
System.out.println("car2当前日租金:" + car2.getDailyRent());
|
|
car2.setDailyRent(350.0); // 合法修改
|
|
System.out.println("修改为350.0后,car2日租金:" + car2.getDailyRent());
|
|
car2.setDailyRent(-100.0); // 非法修改,应提示警告并保持原值
|
|
System.out.println("尝试修改为-100.0后,car2日租金:" + car2.getDailyRent());
|
|
|
|
// 5. 测试静态变量(车辆总数)
|
|
System.out.println("\n5. 测试静态成员(车辆总数统计):");
|
|
System.out.println("当前已创建的车辆总数为:" + Car.getTotalCars());
|
|
|
|
System.out.println("\n===== 测试结束 =====");
|
|
}
|
|
}
|
|
|
|
|