1. 程式人生 > >(系統)基於封裝/抽象/多型的簡單的汽車租賃系統

(系統)基於封裝/抽象/多型的簡單的汽車租賃系統

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

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)即可