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.

83 lines
2.1 KiB

package com.rental;
public class Car{
//私有属性
private String licensePlate;
private String brand;
private String model;
private double dailyRent;
private boolean isRented;
//静态变量
private static int totalCars = 0;
//构造方法
public Car(String licensePlate,String brand,String model,double dailyRent){
this.licensePlate = licensePlate;
this.brand = brand;
this.model = brand;
setDailyRent(dailyRent);
this.isRented = false;
totalCars++;
}
public Car(String licensePlate,String brand,String model){
this(licensePlate,brand,model,300.0);
}
//Getter/Setter规则
public String getLicensePlate(){
return licensePlate;
}
public String getBrand(){
return brand;
}
public String getModel(){
return model;
}
public double getDailyRent(){
return this.dailyRent;
}
public boolean isRented(){
return isRented;
}
public void setBrand(String brand){
this.brand=brand;
}
public void setModel(String model){
this.model=model;
}
public void setDailyRent(double dailyRent){
if (dailyRent>0){
this.dailyRent=dailyRent;
}else{
System.out.println("日租金必须大于0,设置失败,保持原值。");
}
}
//业务方法
public void rentCar() {
if (this.isRented) {
System.out.println("车辆已租出,无法再次租用。");
} else {
this.isRented = true;
System.out.println("车辆" + this.licensePlate + "租用成功。");
}
}
public void returnCar() {
if (!this.isRented) {
System.out.println("车辆未被租用,无需归还。");
} else {
this.isRented = false;
System.out.println("车辆" + this.licensePlate + "归还成功。");
}
}
public double calculateRent(int days) {
return this.dailyRent * days;
}
//静态方法
public static int getTotalCars() {
return totalCars;
}
//displayInfo方法
public void displayInfo() {
String status = this.isRented ? "已租出" : "可租";
System.out.println("车牌: " + this.licensePlate + ", 品牌: " + this.brand +
", 型号: " + this.model + ", 日租金: " + this.dailyRent +
"元/天, 状态: " + status);
}
}