有沒有使用接口的方式做出來的?
就是按照這種思路:
1、創建兩個接口(載客接口A-載客量)、(載貨接口B-載貨量),載客和貨接口C extend 載客接口A,載貨接口B(載客量、載貨量),一個抽象父類Car(車型、單價-->元/天);
2、實現-卡車類 extend 父類Car implement 載貨接口B;
? ? 實現-客車類 extend 父類Car implement 載客接口A;
? ? 實現-皮卡類 extend 父類Car implement 載客和貨接口C;
3、租車系統類:一維數組 實例化 卡車對象、客車對象 和 皮卡對象;
4、客戶選車、分類匯總車輛后,輸出租車明細與總價。
2017-05-11
//總類 public?class?Car?{ ????private?String?name; ????private?int?prices; ????private?int?id; ????public?String?getName()?{ ????????return?name; ????} ????public?void?setName(String?name)?{ ????????this.name?=?name; ????} ????public?int?getPrices()?{ ????????return?prices; ????} ????public?void?setPrices(int?prices)?{ ????????this.prices?=?prices; ????} ????public?int?getId()?{ ????????return?id; ????} ????public?void?setId(int?id)?{ ????????this.id?=?id; ????} }載貨接口:
public?interface?CargoNum?{ ????void?setCargoNum(int?num); }載人接口:
public?interface?PersonNum?{ ????void?setPersonNum(int?num); }載人車類:
public?class?Bus?extends?Car?implements?PersonNum{ ????private?int?personNum; ????public?Bus(String?name,?int?prices,?int?personNum)?{ ????????super.setName(name); ????????super.setPrices(prices); ????????this.personNum?=?personNum; ????} ????public?int?getPersonNum()?{ ????????return?personNum; ????} ????public?void?setPersonNum(int?personNum)?{ ????????this.personNum?=?personNum; ????} ????@Override ????public?String?toString()?{ ????????return??getName()+"\t\t"+ ????????????????getPrices()+"/天\t"+ ????????????????"載人:"+getPersonNum()+"人"; ????} }載貨車類:
public?class?CargoCar?extends?Car?implements?CargoNum{ ????private?int?cargoNum; ????public?CargoCar(String?name,?int?prices,?int?cargoNum)?{ ????????this.setName(name); ????????this.setPrices(prices); ????????this.cargoNum?=?cargoNum; ????} ????public?int?getCargoNum()?{ ????????return?cargoNum; ????} ????public?void?setCargoNum(int?cargoNum)?{ ????????this.cargoNum?=?cargoNum; ????} ????@Override ????public?String?toString()?{ ????????return??getName()+"\t\t"+ ????????????????getPrices()+"/天\t"+ ????????????????"載貨:"+getCargoNum()+"噸"; ????} }混合車類:
public?class?MixCar?extends?Car?implements?PersonNum,?CargoNum?{ ????private?int?cargoNum; ????private?int?personNum; ????public?MixCar(String?name,?int?prices,?int?personNum,?int?cargoNum)?{ ????????super.setName(name); ????????super.setPrices(prices); ????????this.personNum?=?personNum; ????????this.cargoNum?=?cargoNum; ????} ????@Override ????public?void?setCargoNum(int?num)?{ ????????cargoNum?=?num; ????} ????@Override ????public?void?setPersonNum(int?num)?{ ????????personNum?=?num; ????} ????public?int?getCargoNum()?{ ????????return?cargoNum; ????} ????public?int?getPersonNum()?{ ????????return?personNum; ????} ????@Override ????public?String?toString()?{ ????????return?getName()?+?"\t\t"?+ ????????????????getPrices()?+?"/天\t"?+ ????????????????"載人:"?+?getPersonNum()?+?"人?"+ ????????????????"載貨:"?+?getPersonNum()?+?"噸"; ????} }工具處理類:
public?class?CarUtil?{ ????private?static?int?id?=?0; ????private?List<Car>?carUtilList; ????public?CarUtil()?{ ????????id?=?0; ????????carUtilList?=?new?ArrayList<>(); ????} ????public?void?add(Car?car)?{ ????????id++; ????????if?(car?instanceof?Bus)?{ ????????????Bus?bus?=?(Bus)?car; ????????????System.out.println(id+".\t\t"+?bus.toString()); ????????}?else?if?(car?instanceof?CargoCar)?{ ????????????CargoCar?cargoCar?=?(CargoCar)?car; ????????????System.out.println(id+".\t\t"+cargoCar.toString()); ????????}else?if?(car?instanceof?MixCar)?{ ????????????MixCar?mixCar?=?(MixCar)?car; ????????????System.out.println(id+".\t\t"+mixCar.toString()); ????????} ????????carUtilList.add(car); ????} ????public?Car?getCar(int?index)?{ ????????return?carUtilList.get(index); ????} }主函數:
public?class?Main?{ ????private?static?CarUtil?carUtil; ????public?static?void?main(String[]?args)?{ ????????System.out.println("歡迎使用大大租車系統:\n"?+ ????????????????"您是否要租車:1是?0否"); ????????int?isUse?=?getInput(); ????????while?(isUse?!=?1?&&?isUse?!=?0)?{ ????????????System.out.println("輸入錯誤。"); ????????????System.out.println("歡迎使用大大租車系統:\n"?+ ????????????????????"您是否要租車:1是?0否"); ????????????isUse?=?getInput(); ????????} ????????if?(isUse?==?0)?{ ????????????System.out.println("系統已退出"); ????????????return; ????????}?else?{ ????????????System.out.println("您可租車的類型及價目表:"); ????????????System.out.println("序號\t汽車名稱\t?租金\t?容量"); ????????????initData(); ????????????System.out.println("請輸入您要租車的數量"); ????????????int?num?=?getInput(); ????????????int[]?index?=?new?int[num]; ????????????for?(int?i?=?0;?i?<?num;?i++)?{ ????????????????System.out.println("請輸入第"?+?(i?+?1)?+?"輛車的序號:"); ????????????????index[i]?=?getInput(); ????????????} ????????????System.out.println("請輸入租車天數:"); ????????????int?days?=?getInput(); ????????????output(index,?days); ????????} ????} ????private?static?void?output(int[]?indexes,?int?days)?{ ????????int?numPeople?=?0; ????????int?numCargo?=?0; ????????StringBuilder?cargoCarName?=?new?StringBuffer(); ????????StringBuilder?pCarName?=?new?StringBuffer(); ????????int?price?=?0; ????????for?(int?index?:?indexes)?{ ????????????System.out.println(index?+?""); ????????????Car?car?=?carUtil.getCar(index-1); ????????????price?+=?car.getPrices(); ????????????if?(car?instanceof?Bus)?{ ????????????????Bus?bus?=?(Bus)?car; ????????????????pCarName.append(car.getName()).append("??"); ????????????????numPeople?=?bus.getPersonNum()?+?numPeople; ????????????}?else?if?(car?instanceof?MixCar)?{ ????????????????MixCar?mixCar?=?(MixCar)?car; ????????????????pCarName.append(car.getName()).append("??"); ????????????????cargoCarName.append(car.getName()).append("??"); ????????????????numPeople?+=?mixCar.getPersonNum(); ????????????????numCargo?+=?mixCar.getCargoNum(); ????????????}?else?if?(car?instanceof?CargoCar)?{ ????????????????CargoCar?cargoCar?=?(CargoCar)?car; ????????????????cargoCarName.append(car.getName()).append("??"); ????????????????numCargo?+=?cargoCar.getCargoNum(); ????????????} ????????} ????????System.out.println("***可載人的車有:"); ????????System.out.println(pCarName?+?"共載人:"?+?numPeople?+?"人"); ????????System.out.println("***可載貨的車有:"); ????????System.out.println(cargoCarName?+?"共載貨:"?+?numCargo?+?"噸"); ????????System.out.println("***出租車總價格:"?+?price*days); ????} ????public?static?int?getInput()?{ ????????Scanner?scanner?=?new?Scanner(System.in); ????????return?scanner.nextInt(); ????} ????public?static?void?initData()?{ ????????carUtil?=?new?CarUtil(); ????????carUtil.add(new?Bus("奧迪A4",?500,?4)); ????????carUtil.add(new?Bus("馬自達6",?400,?4)); ????????carUtil.add(new?MixCar("皮雪卡6",?450,?4,?2)); ????????carUtil.add(new?Bus("金龍",?800,?20)); ????????carUtil.add(new?CargoCar("松花江",?400,?4)); ????????carUtil.add(new?CargoCar("奔馳",?1000,?20)); ????} }基本用上了第二季所有學的知識,除了抽象類(其實接口應該也算調用了抽象類),僅供參考。
2017-08-06
我也是這樣想的,厲害厲害
2017-07-11
什么錯誤?
2017-06-12
為什么我用這個代碼會出錯
2017-05-05
1、創建兩個接口(載客接口A-載客量)、(載貨接口B-載貨量),載客和貨接口C extend 載客接口A,載貨接口B(載客量、載貨量),一個抽象父類Car(車型、單價-->元/天);
2、實現-卡車類 extend 父類Car implement 載貨接口B;
? ? 實現-客車類 extend 父類Car implement 載客接口A;
? ? 實現-皮卡類 extend 父類Car implement 載客和貨接口C;
3、租車系統類:一維數組 實例化 卡車對象、客車對象 和 皮卡對象;
4、客戶選車、分類匯總車輛后,輸出租車明細與總價
66666