慕課網Java入門第二季6.1 達達租車系統,使用到繼承、重寫、多態、toString函數
阿新 • • 發佈:2017-08-18
ati next println 構造方法 static class days 慕課網 mage
為了方便理解,畫了個UML圖,可以參考一下為了方便理解,畫了個UML圖,可以參考一下
定義Car類型:載人+載貨
public class Car { int id; String name; int seat; double load; double price; public Car(int id,String name,int seat,double load,double price){ this.id = id; this.name = name; this.seat = seat; this.load = load; this.price = price; } public String toString(){ return id+"\t"+name+"\t"+seat+"座\t"+load+"噸\t"+price+"元"; } }
定義LoadCar繼承Car,重寫構造方法(載貨,則座位=0)
public class LoadCar extends Car { public LoadCar(int id,String name,double load,double price){ super(id,name,0,load,price); } public String toString(){ return id+"\t"+name+"\t"+seat+"\t"+load+"\t"+price; } }
`定義SeatCar繼承Car,重寫構造方法(載人,則載貨=0)
public class SeatCar extends Car { public SeatCar(int id,String name,int seat,double price){ super(id,name,seat,0,price); } public String toString(){ return id+"\t"+name+"\t"+seat+"\t"+load+"\t"+price; } }
實現(主要就是業務流程):
import java.util.Scanner;; public class Initail { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("您是否要租車?1、是;2、否"); Scanner in = new Scanner(System.in); if(in.nextInt()==1){ Car[] cars = new Car[5]; cars[0]=new SeatCar(1,"奧迪A8",4,400); cars[1]=new SeatCar(2,"特斯拉",4,500); cars[2]=new Car(3,"皮卡丘",4,2,200); cars[3]=new LoadCar(4,"松花江",10,200); cars[4]=new LoadCar(5,"黑龍江",20,300); System.out.println("現有5種車型可供您選擇:"); System.out.println("序號"+"\t"+"車型"+"\t"+"座位(座)"+"\t"+"載重(噸)"+"\t"+"租金/天"); for(Car c : cars){ System.out.println(c); } int totalSeat = 0; double totalLoad = 0; double totalPrice = 0; String loadCarList = ""; String seatCarList = ""; System.out.println("請輸入您要租車的數量"); int rentNum = in.nextInt(); for(int i=0;i<rentNum;i++){ System.out.println("你要選擇的第"+(i+1)+"輛車的序號"); int rentId = in.nextInt(); if(rentId<5){ totalSeat = totalSeat + cars[rentId-1].seat; totalLoad = totalLoad + cars[rentId-1].load; totalPrice = totalPrice + cars[rentId-1].price; if(cars[rentId-1].seat!=0){ seatCarList = seatCarList + cars[rentId-1] + "\n"; }else if(cars[rentId-1].load!=0){ loadCarList = loadCarList + cars[rentId-1] + "\n"; } }else{ System.out.println("不好意思,請選擇現有的車輛(序號1-5)"); } } System.out.println("請輸入您要租車的天數"); int rentDays = in.nextInt(); System.out.println("/********************** 以下是您此次的租車賬單 **********************/"); if(seatCarList==""){ System.out.println("沒有可載人的車"); }else{ System.out.println("可載人的車輛有\n"+seatCarList); System.out.println("總座位數"+totalSeat); } if(loadCarList==""){ System.out.println("沒有可載貨的車"); }else{ System.out.println("可載人的車輛有\n"+seatCarList); System.out.println("總載貨量"+totalLoad); } System.out.println("總價格:"+totalPrice*rentDays+"元"); }else{ System.out.println("感謝您的使用"); } } }
慕課網Java入門第二季6.1 達達租車系統,使用到繼承、重寫、多態、toString函數