請大家?guī)兔纯?,指點(diǎn)一下,感謝!
感覺寫了好多代碼,很多地方都可以優(yōu)化,但是我剛學(xué),不知道怎么修改, 希望各位可以提供點(diǎn)思路,感謝!以下是代碼:
//父類: package?Dada; public?abstract?class?Vehicle?{ ????public?int?price; ????public?int?people; ????public?String?name; ????public?double?load; ????abstract?void?info(); }
子類:奧迪
package?Dada; public?class?Audi?extends?Vehicle?{ ????public?final?int?price?=?500; ????public?final?int?people?=?4; ????public?final?int?id?=1; ????public?final?String?name?=?"奧迪A4"; ????@Override ????void?info()?{ ????????System.out.println(id+"."+"?"+name+"?"+price+"/天"+"?"+"載人:"+people+"人"); ????} }
子類:馬自達(dá)
package?Dada; public?class?Mazda?extends?Vehicle?{ ????public?final?int?price?=?400; ????public?final?int?people?=?4; ????public?final?int?id?=2; ????public?final?String?name?=?"馬自達(dá)6"; ????@Override ????void?info()?{ ????????System.out.println(id+"."+"?"+name+"?"+price+"/天"+"?"+"載人:"+people+"人"); ????} }
子類:皮卡雪6
package?Dada; public?class?Pika?extends?Vehicle?{ ????public?final?int?price?=?450; ????public?final?int?people?=?4; ????public?final?int?id?=3; ????public?final?String?name?=?"皮卡雪6"; ????public?final?double?load?=?2; ????@Override ????void?info()?{ ????????System.out.println(id+"."+"?"+name+"?"+price+"/天"+"?"+"載人:"+people+"人"+"載貨"+load+"噸"); ????} }
子類:金龍
package?Dada; public?class?Jinlong?extends?Vehicle?{ ????public?final?int?price?=?800; ????public?final?int?people?=?20; ????public?final?int?id?=4; ????public?final?String?name?=?"金龍"; ????@Override ????void?info()?{ ????????System.out.println(id+"."+"?"+name+"?"+price+"/天"+"?"+"載人:"+people+"人"); ????} }
子類:松花江
package?Dada; public?class?Songhuajiang?extends?Vehicle?{ ????public?final?int?price?=?400; ????public?final?double?load?=?4; ????public?final?int?id?=5; ????public?final?String?name?=?"松花江"; ????@Override ????void?info()?{ ????????System.out.println(id+"."+"?"+name+"?"+price+"/天"+"?"+"載貨:"+load+"噸"); ????} }
子類:依維柯
package?Dada; public?class?Yiweike?extends?Vehicle?{ ????public?final?int?price?=?1000; ????public?final?double?load?=?20; ????public?final?int?id?=6; ????public?final?String?name?=?"依維柯"; ????@Override ????void?info()?{ ????????System.out.println(id+"."+"?"+name+"?"+price+"/天"+"?"+"載貨:"+load+"噸"); ????} }
測試類:
package?Dada; import?java.util.ArrayList; import?java.util.List; import?java.util.Scanner; public?class?test?{ ????public?static?void?main(String[]?args){ ????????List<Integer>?data; ????????List<String>?passengerVehicleName=new?ArrayList<>(); ????????List<String>?goodsVehicleName=new?ArrayList<>(); ????????System.out.println("歡迎使用答答租車系統(tǒng):"); ????????System.out.println("您是否要租車??1?是,?0?否"); ????????Scanner?select?=?new?Scanner(System.in); ????????int?answer?=?select.nextInt(); ????????int?dayNum; ????????int?money?=0; ????????int?people=0; ????????double?goods?=0; ????????switch?(answer){ ????????????case?1: ????????????????info(); ????????????????break; ????????????case?0: ????????????????System.out.println("不租車你點(diǎn)進(jìn)來干嘛,別鬧!"); ????????????????break; ????????????default: ????????????????System.out.println("你好調(diào)皮,再見。"); ????????} ????????data?=?rentNumber(); ????????dayNum?=?data.get(data.size()-1); ????????data.remove(data.size()-1); ????????for?(int?i:?data){ ????????????switch?(i){ ????????????????case?1: ????????????????????Audi??audi?=?new?Audi(); ????????????????????money=?money+audi.price*dayNum; ????????????????????people=?people+audi.people; ????????????????????passengerVehicleName.add(audi.name); ????????????????????break; ????????????????case?2: ????????????????????Mazda?mazda?=?new?Mazda(); ????????????????????money?=?money+mazda.price*dayNum; ????????????????????people?=?people+mazda.people; ????????????????????passengerVehicleName.add(mazda.name); ????????????????????break; ????????????????case?3: ????????????????????Pika?piKa?=?new?Pika(); ????????????????????money=money+piKa.price*dayNum; ????????????????????people=people+piKa.people; ????????????????????goods=goods+piKa.load; ????????????????????passengerVehicleName.add(piKa.name); ????????????????????goodsVehicleName.add(piKa.name); ????????????????????break; ????????????????case?4: ????????????????????Jinlong?jinLong?=?new?Jinlong(); ????????????????????money?=?money?+?jinLong.price*dayNum; ????????????????????people?=?people+jinLong.people; ????????????????????passengerVehicleName.add(jinLong.name); ????????????????????break; ????????????????case?5: ????????????????????Songhuajiang?songHuaJiang?=?new?Songhuajiang(); ????????????????????money?=?money+songHuaJiang.price*dayNum; ????????????????????goods?=?goods+songHuaJiang.load; ????????????????????goodsVehicleName.add(songHuaJiang.name); ????????????????????break; ????????????????case?6: ????????????????????Yiweike?yiWeiKe?=?new?Yiweike(); ????????????????????money?=?money?+?yiWeiKe.price*dayNum; ????????????????????goods?=?goods?+?yiWeiKe.load; ????????????????????goodsVehicleName.add(yiWeiKe.name); ????????????????????break; ????????????} ????????} ????????System.out.println("您的賬單:"); ????????if?(people!=0){ ????????????System.out.println("***可載人的車有:"); ????????????for?(String?i:passengerVehicleName ????????????)?{ ????????????????System.out.print(i+"?"); ????????????} ????????????System.out.println("共載人:"+people+"人"); ????????????System.out.println(); ????????} ????????if?(goods!=0){ ????????????System.out.println("***可載貨的車有:"); ????????????for?(String?i:goodsVehicleName ????????????)?{ ????????????????System.out.print(i+"?"); ????????????} ????????????System.out.println("共載貨:"+goods+"噸"); ????????????System.out.println(); ????????} ????????System.out.println("***租車總價格為"+money+"元"); ????} ????static?void?info(){ ????????System.out.println("您可租車的類型及價目表如下:"); ????????System.out.println("序號?汽車名稱?租金???容量"); ????????Vehicle?Audi?=?new?Audi(); ????????Audi.info(); ????????Vehicle?Mazda?=?new?Mazda(); ????????Mazda.info(); ????????Vehicle?Pika?=?new?Pika(); ????????Pika.info(); ????????Vehicle?Jinlong?=?new?Jinlong(); ????????Jinlong.info(); ????????Vehicle?Songhuajiang?=?new?Songhuajiang(); ????????Songhuajiang.info(); ????????Vehicle?Yiweike?=?new?Yiweike(); ????????Yiweike.info(); ????} ????public?static?List?rentNumber(){ ????????List<Integer>?selection?=?new?ArrayList<>(); ????????System.out.println("請輸入您要租車的數(shù)量:"); ????????Scanner?rn?=?new?Scanner(System.in); ????????int?number?=?rn.nextInt(); ????????for?(int?i?=?1;?i<=?number;?i++){ ????????????System.out.println("請輸入第"+i+"輛車的序號:"); ????????????Scanner?num?=?new?Scanner(System.in); ????????????int?a?=?num.nextInt(); ????????????selection.add(a); ????????} ????????System.out.println("請輸入租車天數(shù):"); ????????Scanner?data?=?new?Scanner(System.in); ????????int?dayNum?=?data.nextInt(); ????????selection.add(dayNum); ????????return?selection; ????} }
2019-05-25
不需要寫這么多的子類,? 可以用不同的參數(shù)實(shí)例化父類來獲得不同的汽車的實(shí)例.? ?