号外!号外!豪车出租啦!

你没看错!你也没进错!出租豪车啦!接下来让我们看看是如何租车的吧!


车辆详情:

对应的类和属性:
实现效果:


根据上面的要求,咱来分析分析·······················

  1. 首先创建汽车类(Vehicle)、轿车类(Car)、客车类(Bus),当然还有一个测试类(TestVehicle),轿车和客车都属于汽车类,所以具有继承关系。
  2. 车辆的信息可以放在一个数组中,通过传入的汽车类型、汽车品牌、汽车座位数来判断租赁哪一辆车,然后返回对应的车牌号。
  3. 根据日租金和租赁天数,以及天数对应的折扣计算所需要的租金。并返回结果。

根据对应的类和属性,让我们来创建相关的类吧!代码如下:

Vehicle.java:

/*** 汽车类*/
public abstract class Vehicle {private String id;      //车牌号private String brand;   //品牌private double dayRent;    //日租金//重写equals()方法,用来比较类型@Override public abstract boolean equals(Object obj);//创建有参构造便于创建对象public Vehicle(String id, String brand, double dayRent) {this.id = id;this.brand = brand;this.dayRent = dayRent;}//当然还得有无参构造public Vehicle() {}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public double getDayRent() {return dayRent;}public void setDayRent(double dayRent) {this.dayRent = dayRent;}//计算租金public abstract double Money(int num, double dayRent);
}

Car.java

/*** 轿车类   继承汽车类*/
public class Car extends Vehicle{private String type;@Overridepublic boolean equals(Object obj) {//判断传入的参数obj是否属于Car类型if (obj instanceof Car){//向下转型Car c = (Car) obj;return this.getBrand().equals(c.getBrand())&&this.getType().equals(c.getType());}return false;}public Car(String id, String brand, double dayRent, String type) {super(id, brand, dayRent);this.type = type;}public Car() {}//重写父类Vehicle中的Money()方法,用来计算轿车的租金@Overridepublic double Money(int num, double dayRent) {if (num > 150){return num*dayRent*0.7;}else if (num > 30){return num*dayRent*0.8;}else if (num > 7){return num*dayRent*0.9;}elsereturn dayRent*num;
}public Car(String brand, String type) {super.setBrand(brand);this.type = type;}public String getType() {return type;}public void setType(String type) {this.type = type;}
}

Bus.java

/*** 客车    继承汽车类*/
public class Bus extends Vehicle{private String num;   //座位数//计算租金@Overridepublic double Money(int num, double dayRent) {if (num >= 150){return num*dayRent*0.6;}else if (num >= 30){return num*dayRent*0.7;}else if (num >= 7){return num*dayRent*0.8;}else if (num >= 3){return num*dayRent*0.9;}elsereturn dayRent*num;}public Bus(String id, String brand, double dayRent, String num) {super(id, brand, dayRent);this.num = num;}@Overridepublic boolean equals(Object obj) {//判断传入的参数obj是否是Bus类型if (obj instanceof Bus){//向下转型Bus b = (Bus) obj;return this.getBrand().equals(b.getBrand())&&this.getNum().equals(b.getNum());}return false;}public Bus() {}public Bus(String brand, String type) {super.setBrand(brand);this.num = type;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}
}

TestVehicle.java

/*** 汽车业务类*/
public class TestVehicle {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//创建一个数组,将汽车的Vehicle[] cars = new Vehicle[8];cars[0] = new Car("京NY28588","宝马",800,"X6");cars[1] = new Car("京CNY3284","宝马",600,"550i");cars[2] = new Car("京NT37465","别克",300,"林荫大道");cars[3] = new Car("京NT96968","别克",600,"GL8");cars[4] = new Bus("京6566754","金杯",800,"16座");cars[5] = new Bus("京8696997","金龙",800,"16座");cars[6] = new Bus("京9696996","金杯",1500,"34座");cars[7] = new Bus("京8696998","金龙",1500,"34座");Vehicle v;System.out.println("************欢迎光临秋名山守望者汽车租赁公司************");System.out.println("1、轿车        2、客车");System.out.print("请选择你要租赁的汽车类型:");int t1 = sc.nextInt();String brand;    //品牌String type;     //汽车类型int t2,b;//判断是否为轿车,如果是,则往下执行。如果不是,则执行else部分if (t1 == 1){System.out.print("请选择你要租赁的汽车品牌(1、别克  2、宝马):");b = sc.nextInt();brand = b == 1 ?"别克":"宝马";  //根据三目运算判断汽车品牌并返回对应的品牌,用brand接收。if (b == 1){System.out.print("请选择你要租赁的汽车类型(1、林荫大道  2、GL8):");t2 = sc.nextInt();type = t2 == 1 ?"林荫大道":"GL8";}else{System.out.print("请选择你要租赁的汽车类型(1、X6  2、550i):");t2 = sc.nextInt();type = t2 == 1 ?"X6":"550i";}v = new Car(brand, type);}else {System.out.print("请选择你要租赁的汽车品牌(1、金龙  2、金杯):");b = sc.nextInt();brand = b == 1 ?"金龙":"金杯";if (b == 1){System.out.print("请选择你要租赁的汽车类型(1、16座  2、34座):");t2 = sc.nextInt();type = t2 == 1 ?"16座":"34座";}else{System.out.print("请选择你要租赁的汽车类型(1、16座  2、34座):");t2 = sc.nextInt();type = t2 == 1 ?"16座":"34座";}v = new Bus(brand, type);}//通过foreach增强for来找出对应的车辆信息for(Vehicle vv : cars){if (vv.equals(v)) {System.out.print("请输入您要租赁的天数:");int num = sc.nextInt();v.setDayRent(num);System.out.println("分配给您的车牌号是:"+vv.getId());System.out.println("您需要支付的租赁费用是:" + v.Money(num, vv.getDayRent())+"元");}}}
}

以上就是所有的代码啦,有需要的就请借鉴吧!!!!!

运行结果:

看完后别忘了留下个赞哟!

号外!号外!豪车出租啦!相关推荐

  1. 波士顿动力机器狗测评来了!售价堪比豪车,避障、导航、舞蹈样样都行,买不起还能租...

    乾明 郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如果你忽然看到有人遛波士顿动力的机器狗,千万不要惊讶. 因为它现在已经正式商业化了. 近日,波士顿动力宣布,正式对外出售机器狗Spo ...

  2. 开启灯光就是近光吗_保时捷Macan大灯改装技术,东莞专业豪车灯光改装修复。保时捷改LED大灯...

    保时捷Macan大灯改装技术,东莞专业豪车灯光改装修复.保时捷改LED大灯 好马配好鞍.好车搭好灯,如果把车辆前杠比作"脸"的话,大灯就是"眼睛",而灯光就是这 ...

  3. rust拆自己家门_非常“掉价”的四大汽车装潢,豪车装上也难看,车主:回去拆了...

    买了新车之后,给自己的爱车加装一些自己喜欢的物品,让汽车变得更有个性,这种现象很常见.在这些加装物品上,有些是装饰性的,有些是功能性的,总有一款适合你.只是汽车在设计之初,就已经是最和谐的状态,多加东 ...

  4. 百度程序员哀叹:回老家发现村里很多人开保时捷,道奇等豪车,比程序员有钱多了!...

    许多人都觉得程序员是高薪的代名词,农村是穷的代名词,但现实可能会让你大吃一惊. 一位百度程序员发帖讲述了春节回老家的见闻:村里不少老哥开保时捷.道奇之类的车,感觉比程序员有钱多了. 其他程序员也说,阿 ...

  5. 华为员工实力炫富,工作六年一套房一辆豪车,存款六十万

    同样都是工作,人与人之间的差距令人咋舌.近日,一名标签为华为的网友在职场匿名社区晒出了自己的存款图,从图中看,其存款在六十万左右.随后,我们从这名华为员工的描述可以看出,其在华为工作了六年,挣了令很多 ...

  6. 火箭队老板成比特币粉丝 旗下豪车经销商接受BTC、BCH支付

    北京时间9月7日消息,总部设于德克萨斯休斯敦的豪车零售商后橡树汽车(Post Oak Motor Cars)成为了美国首家接受加密货币支付方式的宾利.布加迪和劳斯莱斯经销商. 而这家公司背后,正是休斯 ...

  7. 卧槽!12个杭州阿里高学历女员工被初中男骗财骗色1900多万!骗子冒充有钱佬!开豪车保时捷勾搭妹子,法院判无期徒刑!...

    来   源丨红星新闻(记者:李伟铭 李晨).21世纪经济报道.新浪微博.公开信息 谁能想到,阿里巴巴的员工也会遭遇"杀猪盘"! 一个只有初中文化水平的男子,开奔驰.保时捷豪车当顺风 ...

  8. 前驱和后驱什么意思_为什么只有豪车才敢用后驱

    为什么只有豪车才敢用后驱https://www.zhihu.com/video/1156959599864147968 一般的家用车,基本上都是前驱为主,前驱够用,成本还低.但前驱满足不了豪华车的运动 ...

  9. 可变悬挂调节软硬_国六最亲民的豪车,丐版2.0T纯进口,全系可变悬架+8气囊,才23万...

    现在人们的生活水平和20多年前早已不是一个档次了,在衣食住行方面都有了很大的改变.就如二十年前,汽车的价格很昂贵,难得有人可以拥有.再看现在,几乎很多家庭都开上了小汽车,甚至豪车也层出不穷.豪车离我们 ...

最新文章

  1. python100个必背知识-学Python必背的初级单词,你都背了吗?
  2. 保护 wp cron.php,wp-cron.php任务的定时执行和控制
  3. Android开源工具库
  4. 极路由2 root及校园802.1x拨号经验帖(西南校园)
  5. 推荐我们在B站免费的转录组课程|测序原理,GO/GSEA/WGCNA
  6. 389. Find the Difference
  7. Python中的numpy.zeros()
  8. 3.PHP核心技术与最佳实践 --- PHP网络技术及应用(cURL,socket,SMTP,WebService,Cookie,Session,localStorage)
  9. 以下不是python内置函数的是_Python内置函数
  10. java思维导图 - -13张思维导图带你快速入门 --
  11. 中国首档「程序员真人秀」综艺登上热搜,燃炸了!
  12. 企业微信webhook使用
  13. python random函数sample_Python random.sample()用法及代码示例
  14. 如何进入华为P40 debug 模式/开发者选项模式
  15. 结构建模设计——Solidworks软件之草图绘制中借助新建基准面实现在曲面表面绘制特征的实现步骤总结
  16. 工程职业伦理(2018年秋)学堂在线习题
  17. XDM-跨文档消息传送
  18. python绘制饼图
  19. vue项目中/deep/的用法-vue-cli中没法覆盖样式解决方法
  20. 选购笔记本电脑型号的查询

热门文章

  1. 【ImportError: cannot import name ‘json‘ from ‘itsdangerous‘】
  2. 文本 字体 图像 列表
  3. 虚拟串口工具MCGS开发调试的灵活应用教程
  4. 如何快速实现西门子S7-200/300 PLC转Modbus-TCP协议与第三方数据对接
  5. CYP音乐emlog主题免费版
  6. 转载:微信Windows版-无效的wechatwin.dll文件errcode:126,点击“确定”下载最新版本
  7. 秉持技术普惠的华为,致力于无处不在的联接
  8. 基于微前端qiankun的多页签缓存方案实践
  9. 描述12个异性追求者(互动媒体技术作业)
  10. PowerShell获取货币符号