亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

有沒有使用接口的方式做出來的?

就是按照這種思路:

1、創建兩個接口(載客接口A-載客量)、(載貨接口B-載貨量),載客和貨接口C extend 載客接口A,載貨接口B(載客量、載貨量),一個抽象父類Car(車型、單價-->元/天);
2、實現-卡車類 extend 父類Car implement 載貨接口B;
? ? 實現-客車類 extend 父類Car implement 載客接口A;
? ? 實現-皮卡類 extend 父類Car implement 載客和貨接口C;
3、租車系統類:一維數組 實例化 卡車對象、客車對象 和 皮卡對象;
4、客戶選車、分類匯總車輛后,輸出租車明細與總價。

正在回答

5 回答

//總類
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));
????}
}

基本用上了第二季所有學的知識,除了抽象類(其實接口應該也算調用了抽象類),僅供參考。

0 回復 有任何疑惑可以回復我~
#1

魔鈴咔咔 提問者

非常感謝!膩害膩害??!
2017-05-12 回復 有任何疑惑可以回復我~
#2

qq_安穩隨性_1

請問一下工具處理類的功能是干什么的
2017-07-11 回復 有任何疑惑可以回復我~
#3

y狒狒y 回復 qq_安穩隨性_1

他好像是用了一個集合來保存那個車的基本信息,所以他創建了一個工具類來實現。
2018-05-07 回復 有任何疑惑可以回復我~

我也是這樣想的,厲害厲害

0 回復 有任何疑惑可以回復我~

什么錯誤?

0 回復 有任何疑惑可以回復我~

為什么我用這個代碼會出錯

0 回復 有任何疑惑可以回復我~
#1

浮躁的小螃蟹_0

什么錯誤?
2017-07-11 回復 有任何疑惑可以回復我~


1、創建兩個接口(載客接口A-載客量)、(載貨接口B-載貨量),載客和貨接口C extend 載客接口A,載貨接口B(載客量、載貨量),一個抽象父類Car(車型、單價-->元/天);
2、實現-卡車類 extend 父類Car implement 載貨接口B;
? ? 實現-客車類 extend 父類Car implement 載客接口A;
? ? 實現-皮卡類 extend 父類Car implement 載客和貨接口C;
3、租車系統類:一維數組 實例化 卡車對象、客車對象 和 皮卡對象;
4、客戶選車、分類匯總車輛后,輸出租車明細與總價

66666

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531144    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

有沒有使用接口的方式做出來的?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號