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

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===== 测试结束 =====");
}
}