(系統)基於封裝/抽象/多型的簡單的汽車租賃系統
阿新 • • 發佈:2019-02-02
package day803;
//汽車總類
public abstract class MotoVehicle {
private int day;
private String Brand;
private String Color;
private String No;
private int dayMony;
public void CalcRent(int day) {
this.day = day;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public String getBrand() {
return Brand;
}
public void setBrand(String brand) {
Brand = brand;
}
public String getColor() {
return Color;
}
public void setColor(String color) {
Color = color;
}
public String getNo() {
return No;
}
public void setNo(String no) {
No = no;
}
public int getDayMony() {
return dayMony;
}
public void setDayMony(int dayMony) {
this.dayMony = dayMony;
}
public abstract int dayMoney();
public int money() {
int money = day*dayMony;
return money;
}
}
package day803;
//客車類
public class Bus extends MotoVehicle {
private int SeatCount;
public Bus(int day, int SeatCount) {
this.SeatCount = SeatCount;
setDay(day);
}
public int dayMoney() {
int money = 0;
if (SeatCount > 16) {
setDayMony(1500);
} else {
setDayMony(800);
}
return getDayMony();
}
}
package day803;
//轎車類
public class Car extends MotoVehicle{
private String Type;
public Car( int day ,String type) {
setDay(day);
this.Type = type;
}
public int dayMoney() {
int money = 0;
if (Type.equals("別克商務車")) {
setDayMony(600);
}else if (Type.equals("寶馬")) {
setDayMony(500);
}else if (Type.equals("別克林萌大道")) {
setDayMony(300);
}
return getDayMony();
}
}
package day803;
//測試類
import java.util.Scanner;
public class Rent {
public static void main(String[] args) {
System.out.println("請輸入您想租的車,car/bus");
Scanner scanner = new Scanner(System.in);
String cartype = scanner.next();
int money = 0;
if (cartype.equals("car")) {
System.out.println("請輸入您想租的車型:1,別克商務車。2,寶馬。3,別克林萌大道");
int key = scanner.nextInt();
System.out.println("請輸入租用天數");
int day = scanner.nextInt();
Car car = null;
switch (key) {
case 1:
car = new Car(day, "別克商務車");
car.dayMoney();
car.setDay(day);
money = car.money();
break;
case 2:
car = new Car(day, "寶馬");
car.dayMoney();
car.setDay(day);
money = car.money();
break;
case 3:
car = new Car(day, "別克林萌大道");
car.dayMoney();
car.setDay(day);
money = car.money();
break;
default:
System.out.println("輸入錯誤");
break;
}
} else if (cartype.equals("bus")) {
System.out.println("請輸入您想租的車型:1。16座以上。2。16座以下");
int key = scanner.nextInt();
System.out.println("請輸入租用天數");
int day = scanner.nextInt();
Bus bus = null;
switch (key) {
case 1:
bus = new Bus(day, 17);
bus.dayMoney();
bus.setDay(day);
money = bus.money();
break;
case 2:
bus = new Bus(day, 15);
bus.dayMoney();
bus.setDay(day);
money = bus.money();
break;
default:
System.out.println("輸入錯誤");
break;
}
}
System.out.println("您的租金為" + money);
}
}
總結:
第一次測試時發現租賃天數沒有傳過來。檢查了一遍後。加上.setDay(day)即可