1、创建租车cab父类(抽象)
package study; // 创建抽象租车cab父类 public abstract class cab { // 创建cab具有的公共属性 private String brand; // 车辆的品牌 private String licencePlateNumber; // 车辆的车牌号码 private double dayRent; // 车辆的日租金 // cab的空构造方法 public cab() { } /**cab的有参构造方法 * @param brand * @param licencePlateNumber * @param dayRent */ public cab(String brand, String licencePlateNumber, double dayRent) { this.brand = brand; this.licencePlateNumber = licencePlateNumber; this.dayRent = dayRent; } //创建cab的车辆租赁rent方法 public abstract void rent(); // 创建cab的计算租金的calcRent方法 public abstract void calcRent(); // 创建cab的get、set方法 public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getLicencePlateNumber() { return licencePlateNumber; } public void setLicencePlateNumber(String licencePlateNumber) { this.licencePlateNumber = licencePlateNumber; } public double getDayRent() { return dayRent; } public void setDayRent(double dayRent) { this.dayRent = dayRent; } }
2、创建汽车car子类继承cab父类
package study; import java.util.Scanner; // 创建汽车car子类 public class car extends cab { Scanner input = new Scanner(System.in); int days = 0;// 定义客户租赁的天数 // car的私有属性 private String type; // car的空构造方法 public car() { } /** car的有参构造方法 * @param brand * @param licencePlateNumber * @param dayRent */ public car(String brand, String licencePlateNumber, double dayRent,String type) { super(brand, licencePlateNumber, dayRent); this.type = type ; } // 重写cab的车辆租赁rent方法 public void rent(){ // System.out.println("===========欢迎光临汽车租赁系统=============="+"\n");// 用户提示信息 System.out.println("请输入您要租赁的汽车品牌:1.宝马\t2.别克");// 用户选择提示信息 // 获取用户输入的数字(选项)1或者2 int brand1 = input.nextInt(); // 判断用户输入的数字 switch (brand1){ case 1:// 第一种情况为宝马 super.setBrand("宝马") ; System.out.println("请输入您要租赁的汽车型号:1.X6\t2.550i"); // 提示客户输入信息 int type1 = input.nextInt(); // 获取用户输入信息存储到type1变量中 if(type1==1){ this.type = "X6"; super.setLicencePlateNumber("京NY28588") ; super.setDayRent(800); }else{ type = "550i"; super.setLicencePlateNumber("京CNY3284"); super.setDayRent(600); } break; case 2:// 第一种情况为别克 super.setBrand("别克") ; System.out.println("请输入您要租赁的汽车型号:1.林荫大道\t2.GL8"); // 提示客户输入信息 int type2 = input.nextInt();// 获取用户输入信息存储到type2变量中 if(type2==1){ this.type = "林荫大道"; super.setLicencePlateNumber("京NT37465"); super.setDayRent(300); }else{ this.type = "GL8"; super.setLicencePlateNumber("京NT96968"); super.setDayRent(600); } break; default: } } // 重写租金计算的方法 public void calcRent(){ // double discount = 1.0;// 定义折扣变量并赋初始值为1,即不打折扣 System.out.println("请输入您要租赁的天数:");// 提示用户输入租赁的天数 days = input.nextInt();// 将获取的天数存储到days变量中 if(days<=7){ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+type+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*1+"元人民币。"); }else if(7<days&&days<=30){ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+type+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*(0.9)+"元人民币。"); }else if(30<days&&days<=150){ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+type+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*(0.8)+"元人民币。"); }else{ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+type+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*(0.7)+"元人民币。"); } } // car的get、set方法 public String getType() { return type; } public void setType(String type) { this.type = type; } }
3、创建测试类一
package study; // 创建测试类 public class Demo { public static void main(String[] args) { cab car = new car (); car.rent(); car.calcRent(); } }
编译结果一:
===========欢迎光临汽车租赁系统============== 请输入您要租赁的汽车品牌:1.宝马 2.别克 2 请输入您要租赁的汽车类型:1.林荫大道 2.GL8 1 请输入您要租赁的天数: 1 您成功的租赁了别克 林荫大道 ;车牌号为:京NT37465 ;您需要支付的金额为:300.0元人民币。
4、增加一个bus子类
package study; import java.util.Scanner; //创建客车bus子类 public class bus extends cab { Scanner input = new Scanner(System.in); int days = 0;// 定义客户租赁的天数 // bus的私有属性 private int seat; // bus的空构造方法 public bus() { } /** bus的有参构造方法 * @param brand * @param licencePlateNumber * @param dayRent */ public bus(String brand, String licencePlateNumber, double dayRent,int seat) { super(brand, licencePlateNumber, dayRent); this.seat = seat ; } // 重写bus的车辆租赁rent方法 public void rent(){ // System.out.println("===========欢迎光临汽车租赁系统=============="+"\n");// 用户提示信息 System.out.println("请输入您要租赁的客车品牌:1.金杯\t2.金龙");// 用户选择提示信息 // 获取用户输入的数字(选项)1或者2 int brand1 = input.nextInt(); // 判断用户输入的数字 switch (brand1){ case 1:// 第一种情况为金杯 super.setBrand("金杯") ; System.out.println("请输入您要租赁的客车座位数:1.16\t2.34"); // 提示客户输入信息 int seat1 = input.nextInt(); // 获取用户输入信息存储到type1变量中 if(seat1==1){ this.seat = 16; super.setLicencePlateNumber("京6566754") ; super.setDayRent(800); }else{ this.seat = 34; super.setLicencePlateNumber("京9696996"); super.setDayRent(1500); } break; case 2:// 第一种情况为金龙 super.setBrand("金龙") ; System.out.println("请输入您要租赁的汽车型号:1.16\t2.34"); // 提示客户输入信息 int seat2 = input.nextInt();// 获取用户输入信息存储到type2变量中 if(seat2==1){ this.seat = 16; super.setLicencePlateNumber("京8696997"); super.setDayRent(300); }else{ this.seat = 34; super.setLicencePlateNumber("京8696998"); super.setDayRent(1500); } break; default: } } // 重写租金计算的方法 public void calcRent(){ // double discount = 1.0;// 定义折扣变量并赋初始值为1,即不打折扣 System.out.println("请输入您要租赁的天数:");// 提示用户输入租赁的天数 days = input.nextInt();// 将获取的天数存储到days变量中 if(days<=7){ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+seat+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*1+"元人民币。"); }else if(7<days&&days<=30){ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+seat+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*(0.9)+"元人民币。"); }else if(30<days&&days<=150){ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+seat+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*(0.8)+"元人民币。"); }else{ System.out.println("您成功的租赁了"+super.getBrand()+"\t"+seat+" ;"+"车牌号为:"+super.getLicencePlateNumber()+" "+";"+"您需要支付的金额为:"+super.getDayRent()*(days)*(0.7)+"元人民币。"); } } // car的get、set方法 public int getSeat() { return seat; } public void setSeat(int seat) { this.seat = seat; } }
修改测试类
package study; import java.util.Scanner; // 创建测试类 public class Demo { public static void main(String[] args) { System.out.println("===========欢迎光临汽车租赁系统=============="+"\n"); System.out.println("请输入您要租赁的车辆类型:1.汽车\t2.客车"); Scanner input = new Scanner(System.in); int type = input.nextInt(); if(type==1){ cab car = new car (); car.rent(); car.calcRent(); }else{ cab bus = new bus (); bus.rent(); bus.calcRent(); } } }
编译结果二:
===========欢迎光临汽车租赁系统============== 请输入您要租赁的车辆类型:1.汽车 2.客车 1 请输入您要租赁的汽车品牌:1.宝马 2.别克 1 请输入您要租赁的汽车型号:1.X6 2.550i 1 请输入您要租赁的天数: 23 您成功的租赁了宝马X6 ;车牌号为:京NY28588 ;您需要支付的金额为:16560.0元人民币。
本文出自 “技术进阶” 博客,请务必保留此出处http://vipnoon.blog.51cto.com/7589908/1827335
原文地址:http://vipnoon.blog.51cto.com/7589908/1827335