package com.njwbhz.february.week4.part0222.rentalSystem;/*** @author FairyKunKun* @since 2022/2/22*/
public abstract class MotorVehicle {//属性/*** 车牌号*/private String cardNo;/*** 品牌*/private String brand;/*** 日单价*/private int rent;/*** 是否被租出去*/private boolean isRented = false;//方法//默认构造器/*** 无参构造器*/public MotorVehicle() {}/*** 用来初始化一个具体的车* @param cardNo* @param brand* @param rent*/public MotorVehicle(String cardNo, String brand, int rent) {this.cardNo = cardNo;this.brand = brand;this.rent = rent;}/**** @param cardNo* @param brand*/public MotorVehicle(String cardNo, String brand) {this.cardNo = cardNo;this.brand = brand;}/*** 计算租金*/protected abstract int calcRent (int rentDay) ;/*** get和set方法*/public String getCardNo() {return cardNo;}public void setCardNo(String cardNo) {this.cardNo = cardNo;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getRent() {return rent;}public void setRent(int rent) {this.rent = rent;}public boolean isRented() {return isRented;}public void setRented(boolean rented) {isRented = rented;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Car extends MotorVehicle {//属性/*** 型号*/private String model;//方法public Car(String cardNo, String brand, int rent, String model) {super(cardNo, brand, rent);this.model = model;}/*** 计算租金*/@Overridepublic int calcRent(int rentDay) {/*具体实现*/return (rentDay * super.getRent());}public String getModel() {return model;}public void setModel(String model) {this.model = model;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Bus extends MotorVehicle{//属性/*** 座位数*/private int seat;//方法public Bus(String cardNo, String brand) {super(cardNo, brand);}/*** 计算租金*/@Overridepublic int calcRent(int rentDay) {/*具体实现*//*座位数 <= 45的,1000元/天;否则1500一天。*/if (this.seat <= 45){super.setRent(1000);}else{super.setRent(1500);}return (rentDay * super.getRent());}public int getSeat() {return seat;}public void setSeat(int seat) {this.seat = seat;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Bmw5Bank {//属性/*** 将这些车存储到数组中去,以便随机抽取*/private static  Car[] cars;static{//初始化数组cars = new Car[10];cars[0] = new Car("苏A229LG","宝马",500,"BMW5");cars[1] = new Car("苏A230LG","宝马",500,"BMW5");cars[2] = new Car("苏A231LG","宝马",500,"BMW5");cars[3] = new Car("苏A232LG","宝马",500,"BMW5");cars[4] = new Car("苏A233LG","宝马",500,"BMW5");cars[5] = new Car("苏A234LG","宝马",500,"BMW5");cars[6] = new Car("苏A235LG","宝马",500,"BMW5");cars[7] = new Car("苏A236LG","宝马",500,"BMW5");cars[8] = new Car("苏A237LG","宝马",500,"BMW5");cars[9] = new Car("苏A238LG","宝马",500,"BMW5");}//方法//创建一个变量index用于统计车库中原来有多少辆车static int index = cars.length;//创建一个变量index用于统计车库中实际有多少辆车static int carNumber = cars.length;//创建一个容器用来装从车库中取出来的车static Car carContent;/*从车库中随机取一辆车*/public static Car getCar () {while (true) {//抽取一辆车carContent = cars[(int)Math.random()*index];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (carContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一carNumber--;//将这辆车标记为已经被租赁出去了carContent.setRented(true);//将取出来的车返回给租赁系统return carContent;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class Bmw7Bank {//属性/*** 将这些车存储到数组中去,以便随机抽取*/private static Car [] cars;static {cars = new Car[10];cars[0] = new Car("苏A329LG","宝马",700,"BMW7");cars[1] = new Car("苏A330LG","宝马",700,"BMW7");cars[2] = new Car("苏A331LG","宝马",700,"BMW7");cars[3] = new Car("苏A332LG","宝马",700,"BMW7");cars[4] = new Car("苏A333LG","宝马",700,"BMW7");cars[5] = new Car("苏A334LG","宝马",700,"BMW7");cars[6] = new Car("苏A335LG","宝马",700,"BMW7");cars[7] = new Car("苏A336LG","宝马",700,"BMW7");cars[8] = new Car("苏A337LG","宝马",700,"BMW7");cars[9] = new Car("苏A338LG","宝马",700,"BMW7");}//方法//创建一个变量index用于统计车库中原来有多少辆车static int index = cars.length;//创建一个变量index用于统计车库中实际有多少辆车static int carNumber = cars.length;//创建一个容器用来装从车库中取出来的车static Car carContent;/*从车库中随机取一辆车*/public static Car getCar () {while (true) {//抽取一辆车carContent = cars[(int)Math.random()*index];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (carContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一carNumber--;//将这辆车标记为已经被租赁出去了carContent.setRented(true);//将取出来的车返回给租赁系统return carContent;}
}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class BusBank {//属性/*** 将这些车存储到数组中去,以便随机抽取*///存金杯的车库private static Bus [] busesB;//存金杯的车库private static Bus [] busesL;//方法static {busesB = new Bus[10];busesL = new Bus[10];busesB[0] = new Bus("苏A449LG","金杯");busesB[1] = new Bus("苏A450LG","金杯");busesB[2] = new Bus("苏A451LG","金杯");busesB[3] = new Bus("苏A452LG","金杯");busesB[4] = new Bus("苏A453LG","金杯");busesB[5] = new Bus("苏A454LG","金杯");busesB[6] = new Bus("苏A455LG","金杯");busesB[7] = new Bus("苏A456LG","金杯");busesB[8] = new Bus("苏A457LG","金杯");busesB[9] = new Bus("苏A458LG","金杯");busesL[0] = new Bus("苏A849LG","金龙");busesL[1] = new Bus("苏A850LG","金龙");busesL[2] = new Bus("苏A851LG","金龙");busesL[3] = new Bus("苏A852LG","金龙");busesL[4] = new Bus("苏A853LG","金龙");busesL[5] = new Bus("苏A854LG","金龙");busesL[6] = new Bus("苏A855LG","金龙");busesL[7] = new Bus("苏A856LG","金龙");busesL[8] = new Bus("苏A857LG","金龙");busesL[9] = new Bus("苏A858LG","金龙");}//创建一个变量indexB用于统计金杯车库中原来有多少辆车static int indexB = busesB.length;//创建一个变量busBNumber用于统计金杯车库中实际有多少辆车static int busBNumber = busesB.length;//创建一个容器用来装从车库中取出来的车static Bus busContent;/*从金杯车库中随机取一辆车*/public static Bus getBusB () {while (true) {//抽取一辆车busContent = busesB[(int)Math.random()*indexB];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (busContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一busBNumber--;//将这辆车标记为已经被租赁出去了busContent.setRented(true);//将取出来的车返回给租赁系统return busContent;}//方法//创建一个变量index用于统计金杯车库中原来有多少辆车static int indexL = busesL.length;//创建一个变量index用于统计金杯车库中实际有多少辆车static int busLNumber = busesL.length;/*从金杯车库中随机取一辆车*/public static Bus getBusL () {while (true) {//抽取一辆车busContent = busesL[(int)Math.random()*indexL];//判断这辆车是否已经被租赁出去//如果这辆车没有被租赁,那就直接把这辆车取出去if (busContent.isRented() == false){break;//否则重新抽取一辆车}else{continue;}}//车辆取出去以后,将车库中的实际车辆数目减少一busLNumber--;//将这辆车标记为已经被租赁出去了busContent.setRented(true);//将取出来的车返回给租赁系统return busContent;}}
package com.njwbhz.february.week4.part0222.rentalSystem;/*** @author FairyKunKun* @since 2022/2/22*/
public class TestBank {public static void main(String[] args) {System.out.println(BusBank.getBusB().getBrand());System.out.println(BusBank.getBusL().getBrand());System.out.println(Bmw5Bank.getCar().getCardNo());System.out.println(Bmw7Bank.getCar().getCardNo());}
}
package com.njwbhz.february.week4.part0222.rentalSystem;import java.util.Scanner;
/*** @author FairyKunKun* @since 2022/2/22*/
public class RentalSystem {static Scanner scanner = new Scanner(System.in);static Bus bus;static Car car;//设置一个变量用来存储计算出来的租金//设置一个变量存储用户想要租赁的天数private static int rentDay;//输出欢迎语句public static void welcome () {System.out.println("欢迎进入租赁系统");}public static void selectMotorVehicle () {//设置租赁的天数System.out.print("请选择租赁的天数:");setRentday(scanner.nextInt());//取车环节//选择车的类型System.out.println("请选择租赁的车的类别:1.宝马\t2.客车");switch (scanner.nextInt()) {case 1 :System.out.println("请选择宝马的型号:1.BMW5\t2.BMW7");switch (scanner.nextInt()) {case 1 :car = Bmw5Bank.getCar();break;case 2 :car = Bmw7Bank.getCar();break;}showInfoCar();break;case 2 :System.out.println("请选择车的品牌:1.金杯\t2.金龙");switch (scanner.nextInt()) {case 1 :bus = BusBank.getBusB();System.out.print("请选择座位数:");bus.setSeat(scanner.nextInt());break;case 2 :System.out.print("请选择座位数:");bus.setSeat(scanner.nextInt());bus = BusBank.getBusL();break;}showInfoBus();break;}}public  static void showInfoCar () {System.out.println("系统将为您分配一辆" + car.getBrand() + "车型为" + car.getBrand() + ",车牌为" + car.getCardNo() + ",租赁" + rentDay + "天,租金" + car.calcRent(rentDay) + "元。");}public  static void showInfoBus () {System.out.println("系统将为您分配一辆" + bus.getBrand() + "客车,车牌为" + bus.getCardNo() + ",座位数为" + bus.getSeat() + ",租赁" + rentDay + "天,租金" + bus.calcRent(rentDay) + "元。");}public static int getRentday() {return rentDay;}public static void setRentday(int rentday) {rentDay = rentday;}}
package com.njwbhz.february.week4.part0222.rentalSystem;
/*** @author FairyKunKun* @since 2022/2/22*/
public class RentalSystemApp {public static void main(String[] args) {RentalSystem.welcome();RentalSystem.selectMotorVehicle();}
}

【Java语言】项目实践:汽车租赁系统(源码)(面向对象方法)相关推荐

  1. java计算机毕业设计新能源汽车租赁管理系统源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计新能源汽车租赁管理系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计新能源汽车租赁管理系统源码+数据库+系统+lw文档+mybatis+运行部署 ...

  2. java计算机毕业设计新能源汽车租赁管理系统源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计新能源汽车租赁管理系统源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计新能源汽车租赁管理系统源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈 ...

  3. java计算机毕业设计汽车租赁系统源码+系统+数据库+lw文档

    java计算机毕业设计汽车租赁系统源码+系统+数据库+lw文档 java计算机毕业设计汽车租赁系统源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件: ...

  4. java计算机毕业设计汉服服装租赁系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计汉服服装租赁系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计汉服服装租赁系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  5. java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署

    java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署 java计算机毕业设计网上汽车售票系统源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  6. javaswing汽车租赁系统 java swing mysql实现的汽车租赁系统源码和导入文档(1002)

    java swing + mysql 汽车租车管理系统(1002) 1.系统运行环境 运行环境:Java8 + MySQL8 开发工具:eclipse/idea 2.系统功能实现 (下面介绍的功能肯定 ...

  7. 基于微信小程序的汽车租赁系统源码

    开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 微信小程序 代码注释齐全,没有多余代码,适合学 ...

  8. javaweb springboot汽车租赁系统源码

    开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse) 技术说明: springboot mybatis vue.js bootstrap 代码注释齐全,没有多余代码, ...

  9. java毕业设计汽车租赁系统设计源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计汽车租赁系统设计源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计汽车租赁系统设计源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

  10. java计算机毕业设计汽车租赁管理系统源码+程序+lw文档+mysql数据库

    java计算机毕业设计汽车租赁管理系统源码+程序+lw文档+mysql数据库 java计算机毕业设计汽车租赁管理系统源码+程序+lw文档+mysql数据库 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. ProteinGCN | 使用图卷积网络表示学习蛋白质结构
  2. 重装windows installer
  3. fscanf()函数具体解释
  4. [Web安全之实战] 跨站脚本攻击XSS
  5. 计算机科学在生物信息中的应用,生物信息学在基因组学中的应用
  6. 前端(四)——CSS之导入方式、各类选择器
  7. 检索数据_16_按照某个模式搜索
  8. 使用CAS代替synchronized
  9. 鸿蒙第三代手机,荣耀Magic 3最新确认,鸿蒙系统+双6400万,最期待的荣耀来了
  10. 单片机音乐倒数计时器c语言,音乐倒数计时器单片机课程设计报告
  11. 邮箱怎么群发你知道吗?邮件群发效果较好的邮箱有哪些
  12. 华为机试(C++)真题Od
  13. Teaching Machines to Read and Comprehend
  14. Axure下拉框的多选与取消
  15. MySQL遍历map_遍历Map的四种方法
  16. 软考A计划-软件设计师(高级程序员)考试大纲
  17. 核工业物理研究院九院三所
  18. 基于BlackFriday.csv的电商数据集,简要数据分析
  19. 程序员如何用技术变现?(取其精华去其糟粕)
  20. python基础九 函数(中)作用域、命名空间、递归函数

热门文章

  1. 超级删除PowerTools
  2. 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)
  3. mac上metersphere本地开发环境搭建
  4. B2B平台显现5大价值特征和6种商业创新模式
  5. Google Chrome谷歌浏览器导入csv账号密码
  6. 变频电源使用脉冲宽度调制方式会对周边设备造成什么影响,该如何去防护
  7. 解决SQL Server占用服务器内存过高问题
  8. bugku_crypto_这不是摩斯密码
  9. 心理测试小程序怎么做
  10. lisp不是函授型语言_lisp函数大全详解