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