Java面向对象实现汽车租赁系统

网友投稿 280 2022-08-25


Java面向对象实现汽车租赁系统

本文实例为大家分享了java实现汽车租赁系统的具体代码,供大家参考,具体内容如下

父类Vehicle

public abstract class Vehicle {

private String num;

private String brand;

private double rent;

//重写equals方法

public abstract boolean equals(Vehicle v);

//计算费用

public abstract double cost(int days,double rent);

//3个参数的有参构造

public Vehicle(String num, String brand, double rent) {

this.num = num;

this.brand = brand;

this.rent = rent;

}

//无参构造

public Vehicle() {

}

//get,set方法

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand = brand;

}

public double getRent() {

return rent;

}

public void setRent(double rent) {

this.rent = rent;

}

}

子类Cars

public class Cars extends Vehicle{

private String type;

//重写父类equals方法

@Override

public boolean equals(Vehicle v) {

if(v instanceof Cars){

Cars c=(Cars) v;

return this.getBrand().equals(c.getBrand())&&this.getType().equals(c.getType());

}

return false;

}

//重写父类费用方法

@Override

public double cost(int days,double sent) {

if (days>150){

return days*sent*0.7;

}else if (days>30){

return days*sent*0.8;

}else if (days>7){

return days*sent*0.9;

}else {

return days*sent;

}

}

//无参构造

public Cars() {

}

//有参构造

public Cars(String num, String brand, double rent, String type) {

super(num, brand, rent);

this.type = type;

}

//2个有参构造的方法

public Cars(String brand,String type){

super.setBrand(brand);

this.type = type;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

}

子类Bus

public class Bus extends Vehicle{

private int seat;

//重写父类的equals方法

@Override

public boolean equals(Vehicle v) {

if(v instanceof Bus){

Bus b=(Bus) v;

return this.getBrand().equals(b.getBrand())&&this.getSeat()==b.getSeat();

}

return false;

}

//重写父类费用方法

@Override

public double cost(int days,double rent) {

if (days>=150){

return days*rent*0.6;

}else if (days>=30){

return days*rent*0.7;

}else if (days>=7){

return days*rent*0.8;

}else if (days>=3){

return days*rent*0.9;

}else {

return days*rent;

}

}

//2个参数的有参构造

public Bus(String brand,int seat){

super.setBrand(brand);

this.seat=seat;

}

//子类有参构造

public Bus(String num, String brand, double rent, int seat) {

super(num, brand, rent);

this.seat = seat;

}

//子类无参构造

public Bus(){}

//子类get set 方法

public int getSeat() {

return seat;

}

public void setSeat(int seat) {

this.seat = seat;

}

}

汽车业务类VehicleServicer

public class VehicleServicer {

public static List initVehicle(){

Vehicle v1=new Bus("京6566754","金杯",800,16);

Vehicle v2=new Bus("京9696996","金杯",1500,34);

Vehicle v3=new Bus("京8696997","金龙",800,16);

Vehicle v4=new Bus("京8696998","金龙",1500,34);

Vehicle c1 =new Cars("京NT37465","别克",300,"林荫大道");

Vehicle c2 =new Cars("京9696996","别克",600,"GLB");

Vehicle c3 =new Cars("京8696997","宝马",800,"X6");

Vehicle c4 =new Cars("京8696998","宝马",600,"550i");

//先装入数组中

Vehicle[] ve = {v1,v2,v3,v4,c1,c2,c3,c4};

//将数组转换成集合

List vehicles = Arrays.asList(ve);

return vehicles;

}

}

测试类Test

public class Test {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("**********欢迎光临秋明山守望者汽车租赁公司**********");

System.out.println("1.轿车 2.客车");

System.out.print("请选择你要租赁的汽车类型:");

int type = sc.nextInt();

//桥车

Vehicle ve;

String brand;

if(type==1){

System.out.print("请选择你要租赁的汽车品牌(1.别克 2.宝马):");

int pinpai = sc.nextInt();

String model=pinpai==1?"别克":"宝马";

if(pinpai==1){

System.out.print("请输入你要租赁的汽车类型(1.X6 2.550i):");

int leixin = sc.nextInt();

brand=leixin==1?"林荫大道":"GL8";

}else {

System.out.print("请输入你要租赁的汽车类型(1.X6 2.550i):");

int leixin = sc.nextInt();

brand=leixin==1?"X6":"550i";

}

ve = new Cars(model, brand);

}else {//客车

int seat;

System.out.print("请选择你要租赁的汽车品牌(1.金龙 2.金杯):");

int pinpai = sc.nextInt();

String s=pinpai==1?"金龙":"金杯";

System.out.print("请选择你要租赁的汽车座位数(1.16座 2.34座):");

int z = sc.nextInt();

seat =z==1?16:34;

ve = new Bus(s, seat);

}

//根据选好的车型,输出车牌和总价

List list = VeFoDgMbcDhicleServicer.initVehicle();

for (Vehicle v:list) {

if(ve.equals(v)){

System.out.print("请输入你FoDgMbcD要租赁的天数:");

int days = sc.nextInt();

System.out.println("分配给您的汽车牌号是:"+v.getNum());

System.out.println("您需要支付的租赁费用是:"+v.cost(days,v.getRent()));

}

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python OOP-5(python入门教程(非常详细))
下一篇:Python OOP - practice_2(python怎么读)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~