交個(gè)作業(yè)~
父類Car(屬性name,price)
子類Trunk(獨(dú)有屬性:載貨量)
子類Bus(獨(dú)有屬性:載客量)
子類Pickup(獨(dú)有屬性:載貨量,載客量)
CarRentTest(測(cè)試類)
package?CarRent; public?class?Car?{ ????private?String?carName;???? ????private?int?carPrice;?? ?????? ????public?Car(String?name,?int?price)?{ ????????carName?=?name; ????????carPrice?=?price; ????} ???? ????public?String?getCarName()?{ ????????return?carName; ????} ???? ????public?int?getCarPrice()?{ ????????return?carPrice; ????} ???? ????public?void?setCarName(String?carName)?{ ????????this.carName?=?carName;???? ????} ???? ????public?void?setCarPrice(int?carPrice)?{ ????????this.carPrice?=?carPrice; ????} }
package?CarRent; /*?貨車,只能載貨?*/ public?class?Truck?extends?Car?{ ????private?int?boatload;?//?載貨量 ???? ????public?Truck(String?name,?int?price,?int?boatload)?{ ????????super(name,?price); ????????this.boatload?=?boatload; ????} ???? ????public?int?getBoatload()?{ ????????return?boatload; ????} ??????? ????public?void?setBoatload(int?boatload)?{ ????????this.boatload?=?boatload; ????} ???? }
package?CarRent; /*?客車,只能載人?*/ public?class?Bus?extends?Car?{ ????private?int?busload;?//?載客量 ???? ????public?Bus(String?name,?int?price,?int?busload)?{???????? ????????super(name,?price);???????? ????????this.busload?=?busload;???? ????} ???? ????public?int?getBusload()?{???????? ????????return?busload;???? ????}???? ???? ????public?void?setBusload(int?busload)?{???????? ????????this.busload?=?busload;???? ????} }
package?CarRent; /*?皮卡,既可以載貨也可以載人?*/ public?class?Pickup?extends?Car?{???????? ???? ????private?int?boatload;?//?載貨量???? ????private?int?busload;?//?載客量???? ????public?Pickup(String?name,?int?price,?int?boatload,?int?busload)?{???????? ????????super(name,?price);???????? ????????this.boatload?=?boatload;???????? ????????this.busload?=?busload; ????}???? ???? ????public?int?getBoatload()?{???????? ????????return?boatload;???? ????}???? ???? ????public?int?getBusload()?{???????? ????????return?busload;???? ????}???? ???? ????public?void?setBoatload(int?boatload)?{???????? ????????this.boatload?=?boatload;???? ????}???? ???? ????public?void?setBusload(int?busload)?{???????? ????????this.busload?=?busload;???? ????} ???? }
package?CarRent; import?java.util.Scanner; import?java.util.List; import?java.util.ArrayList; public?class?CarRentTest?{???? ????public?static?void?main(String[]?args)?{???????? ???????? ????????Car?availableCars[]?=?new?Car[]?{???????????? ????????????new?Bus("奧迪A4",?500,?4),???????????? ????????????new?Bus("馬自達(dá)6",?400,?4),???????????? ????????????new?Pickup("皮卡雪6",?450,?2,?4),???????????? ????????????new?Bus("金龍",?800,?20),???????????? ????????????new?Truck("松花江",?400,?4),???????????? ????????????new?Truck("依維柯",?1000,?20)???????? ????????};???????? ????????Scanner?input?=?new?Scanner(System.in);???????? ????????System.out.println("歡迎使用答答租車系統(tǒng):");???????? ????????System.out.print("您是否要租車:1?是;0?否?>>>?");???????? ????????int?rentOrNot?=?input.nextInt();???????? ????????while?(rentOrNot?!=?0?&&?rentOrNot?!=?1)?{ ????????????System.out.print("無(wú)效輸入。請(qǐng)重新輸入:1?是;0?否?>>>?");???????????? ????????????rentOrNot?=?input.nextInt();???????????? ????????????if?(rentOrNot?==?0)?{ ????????????????System.out.println("再見!歡迎下次使用!"); ????????????????System.exit(0); ????????????}?else?if?(rentOrNot?==?1)?{ ????????????????break;???????????? ????????????}?else?{ ????????????????continue; ????????????} ????????} ???????? ????????System.out.println("您可租車的類型及其價(jià)目表:");???????? ????????System.out.println("序號(hào)\t汽車名稱\t租金\t\t容量");???????? ????????for?(int?i?=?0;?i?<?availableCars.length;?i++)?{???????????? ????????????Car?car?=?availableCars[i];???????????? ????????????System.out.print((i+1)+".\t");???????????? ????????????System.out.print(car.getCarName()+"\t\t");???????????? ????????????System.out.print(car.getCarPrice()+"元/天\t");???????????? ????????????if?(availableCars[i]?instanceof?Truck)?{???????????????? ????????????????System.out.print("載貨:"+((Truck)car).getBoatload()+"噸\n");???????????? ????????????}?else?if?(availableCars[i]?instanceof?Bus)?{???????????????? ????????????????System.out.print("載人:"+((Bus)car).getBusload()+"人\n");???????????? ????????????}?else?if?(availableCars[i]?instanceof?Pickup)?{???????????????? ????????????????System.out.print("載人:"+((Pickup)car).getBusload()+"人?載貨:"+((Pickup)car).getBoatload()+"噸\n"); ????????????} ????????} ???????? ????????System.out.print("請(qǐng)輸入您要租汽車的數(shù)量(0?~?"+availableCars.length+"):>>>?");???????? ????????int?rentNumber?=?input.nextInt();???????? ????????while?(rentNumber?<?0?||?rentNumber?>?availableCars.length)?{ ????????????System.out.print("無(wú)效輸入。請(qǐng)重新輸入(0?~?"+availableCars.length+"):>>>?"); ????????????rentNumber?=?input.nextInt(); ????????}???????? ????????List<Integer>?carsAlreadyPicked?=?new?ArrayList<>(); ????????for?(int?i?=?1;?i?<=?rentNumber;?i++)?{ ????????????System.out.print("請(qǐng)輸入第"+i+"輛車的序號(hào):>>>?");???????????? ????????????int?carID?=?input.nextInt();???????????? ????????????while?(carsAlreadyPicked.contains(carID)?||?carID?<?1?||?carID?>?availableCars.length)?{???????????????? ????????????????if?(carID?<?1?||?carID?>?availableCars.length)?{???????????????????? ????????????????????System.out.print("無(wú)效輸入。請(qǐng)重新輸入:>>>?");??????????????? ????????????????}?else?{???????????????????? ????????????????????System.out.print("該車已選擇。請(qǐng)重新選擇:>>>?");??????????????? ????????????????}???????????????? ????????????????carID?=?input.nextInt();???????????? ????????????}???????????? ????????????carsAlreadyPicked.add(carID);???????? ?????????}???????? ????????? ?????????System.out.print("請(qǐng)輸入租車天數(shù)(>?0):>>>?");???????? ?????????int?rentDay?=?input.nextInt();???????? ?????????while?(rentDay?<=?0)?{???????????? ?????????????System.out.print("無(wú)效輸入。請(qǐng)重新輸入:>>>?");???????????? ?????????????rentDay?=?input.nextInt();??????? ?????????}???????? ????????? ?????????int?totalExpense?=?0,?totalBusLoad?=?0,?totalBoatLoad?=?0;???????? ?????????for?(int?id?:?carsAlreadyPicked)?{???????????? ?????????????totalExpense?+=?availableCars[id-1].getCarPrice();???????? ?????????}???????? ?????????totalExpense?*=?rentDay;???????? ?????????System.out.println("您的賬單:");???????? ?????????System.out.println("***可載人的車有:");???????? ?????????for?(int?id?:?carsAlreadyPicked)?{???????????? ?????????????Car?car?=?availableCars[id-1];???????????? ?????????????if?(availableCars[id-1]?instanceof?Bus?||?availableCars[id-1]?instanceof?Pickup)?{???????????????? ?????????????????System.out.print(car.getCarName()+"\t");???????????????? ?????????????????totalBusLoad?+=?(availableCars[id-1]?instanceof?Bus)???((Bus)car).getBusload()?:?((Pickup)car).getBusload();???????????? ?????????????}???????? ?????????}???????? ?????????System.out.print("共載人:"+totalBusLoad+"人\n");???????? ?????????System.out.println("***載貨的車有:");???????? ?????????for?(int?id?:?carsAlreadyPicked)?{???????????? ?????????????Car?car?=?availableCars[id-1];???????????? ?????????????if?(availableCars[id-1]?instanceof?Truck?||?availableCars[id-1]?instanceof?Pickup)?{???????????????? ?????????????????System.out.print(car.getCarName()+"\t");???????????????? ?????????????????totalBoatLoad?+=?(availableCars[id-1]?instanceof?Truck)???((Truck)car).getBoatload()?:?((Pickup)car).getBoatload();???????????? ?????????????}???????? ?????????}???????? ?????????System.out.print("共載貨:"+(double)totalBoatLoad+"噸\n");???????? ?????????System.out.print("***租車總價(jià)格:");???????? ?????????System.out.print(totalExpense+"元\n");? ???????????????? ?????????input.close();???????? ?????????System.out.println("再見!歡迎下次使用!");???? ????????? ????} }
2020-10-21
List<Integer>?carsAlreadyPicked?=?
new
?ArrayList<>();? ? 有木有人告訴我這個(gè)語(yǔ)句的作用
2020-10-15
參考了你的作業(yè),寫得很好,對(duì)象數(shù)組、instanceof判斷對(duì)象類型、查重(能看懂,不會(huì)用)、遍歷都用得很好
2020-10-07
寫得很好
2020-08-23
不錯(cuò),比我的少?