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.
 
 
App e2c03abfee 添加 W3 作业文件 3 weeks ago
..
AI.txt 添加 W3 作业文件 3 weeks ago
Car.java 添加 W3 作业文件 3 weeks ago
CarRunner.java 添加 W3 作业文件 3 weeks ago
README.md 添加 W3 作业文件 3 weeks ago
output.txt 添加 W3 作业文件 3 weeks ago

README.md

汽车租赁系统 - Car 类说明文档

项目概述

本项目是一个基于 Java 的简单汽车租赁系统核心实体类 (Car.java)。该类用于表示一辆汽车的基本属性,并提供了汽车租赁、租金计算以及车辆信息管理等功能。本项目非常适合 Java 初学者学习面向对象编程(OOP)中的封装、构造方法、静态变量以及异常处理等核心概念。

功能特性

  • 车辆信息封装:记录并管理车辆的车牌号、品牌、型号、日租金及租赁状态。
  • 全局统计功能:使用静态变量(static)自动追踪系统内创建的车辆总数。
  • 数据有效性校验:在创建对象和更新属性时,针对非法输入(如空字符串、负数租金等)抛出 IllegalArgumentException,保证数据的一致性和安全性。
  • 租赁状态管理:提供了租车方法 rent(),可避免车辆被重复租赁。
  • 租金计算:根据用户提供的租赁天数动态计算总租金。

类结构说明

核心类:JavaLearningProject.w3.Car

1. 成员变量

  • private String licensePlate: 车牌号(只读,创建后不可修改)
  • private String brand: 汽车品牌
  • private String model: 汽车型号
  • private double dailyRent: 日租金(默认值为 300.0,可修改)
  • private boolean isRented: 租赁状态(true 表示已租出,false 表示未租出)
  • private static int totalCars: 系统中注册的总车辆数

2. 构造方法

  • public Car(String licensePlate, String brand, String model, double dailyRent) 初始化一辆车,并验证参数的合法性,若合法则 totalCars 自增 1。

3. 核心方法

  • Getters / Setters:提供对 brandmodeldailyRent 的安全访问与修改。
  • public boolean rent():尝试租出车辆。若车辆未租出,则将状态改为已租出并返回 true;若已租出,返回 false
  • public double calculateRent(int days):计算给定天数的租金。天数必须为正数。
  • public static int getTotalCars():获取系统内创建的总车辆数。

使用方法 & 示例代码

您可以参考同目录下的 CarRunner.java 进行测试。以下是一个快速使用的代码示例:

import JavaLearningProject.w3.Car;

public class Main {
    public static void main(String[] args) {
        // 1. 创建车辆对象
        Car myCar = new Car("京A88888", "Toyota", "Camry", 200.0);
        
        // 2. 查看车辆状态
        System.out.println("车辆品牌: " + myCar.getBrand());
        System.out.println("是否已租出: " + myCar.isRented());
        
        // 3. 租车操作
        boolean success = myCar.rent();
        System.out.println("租车结果: " + success);
        
        // 4. 计算 5 天的租金
        double totalCost = myCar.calculateRent(5);
        System.out.println("5天租金: " + totalCost);
        
        // 5. 获取总车辆数
        System.out.println("总计车辆数: " + Car.getTotalCars());
    }
}

依赖环境要求

  • JDK 版本:Java 8 或以上版本。
  • 运行环境:任何支持 Java 运行时的操作系统(Windows, macOS, Linux)。
  • 外部依赖:纯 Java 原生实现,无需依赖任何第三方类库(如 Maven/Gradle)。

编译运行步骤

如果您使用命令行执行本程序,请确保当前处于项目根目录的上级目录(如包含 JavaLearningProject 的文件夹)。

1. 编译代码

javac JavaLearningProject/w3/Car.java JavaLearningProject/w3/CarRunner.java

2. 运行测试程序

java JavaLearningProject.w3.CarRunner

3. 输出结果参考 程序执行结果已保存至本目录下的 output.txt 文件中。您可以在其中查看所有可能的场景输出(包含正常情况和异常处理的捕获)。

注意事项

  1. 包名路径:类文件使用了包声明 package JavaLearningProject.w3;,在编译和运行时必须严格遵循包目录结构的路径。
  2. 只读属性licensePlate (车牌号) 是车辆的唯一标识,因此在设计上仅提供了 Getter 方法,未提供 Setter 方法。
  3. 异常处理:在传入空字符串或负数等非法参数时,程序会抛出 IllegalArgumentException。在实际开发中,调用方需做好 try-catch 处理,避免程序崩溃。