交作業(yè)!大家來交流交流,提提意見
測試類
import?java.util.Scanner; public?class?Play?{ ????public?static?void?main(String[]?args)?{ ????????Car?car1?=?new?Truck("貨車1號",?100,?4); ????????Car?car2?=?new?Truck("貨車2號",?200,?15); ????????Car?car3?=?new?MannedCar("客車1號",?300,?15); ????????Car?car4?=?new?MannedCar("客車2號",?400,?4); ????????Car?car5?=?new?PickupTruck("皮卡車1號",?400,?2,4); ????????Car?car6?=?new?PickupTruck("皮卡車2號",?500,?3,2); ????????Car[]?cars?=?new?Car[6]; ????????cars[0]?=?car1; ????????cars[1]?=?car2; ????????cars[2]?=?car3; ????????cars[3]?=?car4; ????????cars[4]?=?car5; ????????cars[5]?=?car6; ????????System.out.println("歡迎使用嗒嗒租車系統(tǒng):"); ????????System.out.println("您是否要租車:1是?0否"); ????????Scanner?scanner?=?new?Scanner?(?System.in?); ????????int?yes_no?=?scanner.nextInt?(); ????????if?(yes_no?==?1)?{ ????????????System.out.println?(?"您可以租車的類型及價目表:"?); ????????????System.out.println?(?"序號?名稱????租金?????容量"?); ????????????for?(int?i?=?0;?i?<?cars.length;?i++)?{ ????????????????System.out.print?(?i?+?1?+?".???"?); ????????????????cars[i].show?(); ????????????} ????????????//eg1.foreeach遍歷 ????????????/*for?(Car?car?:?cars)?{ ???????????????????car.show?(); ????????????}*/ ????????????//eg2.while遍歷 ????????????/*int?i?=?0; ????????????while(i<cars.length){ ????????????????cars[i].show(); ????????????????i++; ????????????}*/ ????????????System.out.print?(?"請輸入您要租汽車的數(shù)量:?"?); ????????????int?lease?=?scanner.nextInt?(); ????????????//生成儲存租借汽車的數(shù)組 ????????????Car[]?zcar?=?new?Car[lease];//zcar數(shù)組長度取決于用戶輸入的lease變量值 ????????????for?(int?n?=?1;?n?<?lease?+?1;?n++)?{ ????????????????System.out.print?(?"請輸入第"?+?n?+?"車的序列號:?"?); ????????????????int?serial?=?scanner.nextInt?(); ????????????????zcar[n-1]?=?cars[serial-1];//把cars數(shù)組中[serial-1]傳入zcar數(shù)組中[n-1]去 ????????????} ????????????//測試zcar(租借車輛數(shù)組) ????????????/*for?(int?i?=?0;?i<lease;?i++){ ????????????????zcar[i].show?(); ????????????}*/ ????????????//day變量存儲輸入天數(shù) ????????????System.out.print?(?"請輸入租車的天數(shù):?"?); ????????????int?day?=?scanner.nextInt?(); ????????????//遍歷篩選載人汽車 ????????????System.out.println?("***可載人的汽車有:?"); ????????????for?(int?i?=?0;?i<lease;?i++){ ????????????????if?(zcar[i].manned?!=?0){ ????????????????????System.out.print?(zcar[i].name?+?"?"); ????????????????} ????????????} ????????????//遍歷篩選載貨汽車 ????????????System.out.println?(); ????????????System.out.println?("***可載貨的汽車有:?"); ????????????for?(int?i?=?0;?i<lease;?i++){ ????????????????if?(zcar[i].goods?!=?0){ ????????????????????System.out.print?(zcar[i].name?+?"?"); ????????????????} ????????????} ????????????//計算總價格 ????????????System.out.println?(); ????????????System.out.println?("***租車總價格為:?"); ????????????int?moneny?=?0; ????????????for?(int?i?=?0;?i<lease;i++){ ????????????????moneny?+=?zcar[i].price?*?day; ????????????} ????????????System.out.println?(moneny?+?"元"); ????????}else?{ ????????????System.out.println?("好的,再見"); ????????????System.exit?(?0?); ????????} ????} }
Car類(父類)
public?class?Car?{ ????public?String?name; ????public?int?price; ????public?int?goods; ????public?int?manned; ????public?void?show(){ ????} }
Truck類(子類)
public?class?Truck?extends?Car{ ????//private?int?goods; ????public?Truck(String?newName,int?newPrice,int?newgoods){ ????????name?=?newName; ????????price?=?newPrice; ????????goods?=?newgoods; ????} ????public?void?show(){ ????????System.out.println?(?name?+?"?"?+?price?+?"元/天?"?+"載貨:"??+?goods?+?"噸"?); ????} ????//沒用的 ????/*public?int?getGoods()?{ ????????return?goods; ????} ????public?void?setGoods(int?goods)?{ ????????this.goods?=?goods; ????}*/ }
MannedCar類(子類)
public?class?MannedCar?extends?Car{ ????//private?int?manned; ????public?MannedCar(String?newName,int?newPrice,int?newManned){ ????????name?=?newName; ????????price?=?newPrice; ????????manned?=?newManned; ????} ????public?void?show(){ ????????System.out.println?(?name?+?"?"?+?price?+?"元/天?"?+"載人:"??+?manned?+?"人"?); ????} ????public?int?getManned()?{ ????????return?manned; ????} ????public?void?setManned(int?manned)?{ ????????this.manned?=?manned; ????} }
PickupTruck類(子類)
public?class?PickupTruck?extends?Car{ ????//private?int?goods; ????//private?int?manned; ????public?PickupTruck(String?newName,int?newPrice,int?newGoods,int?newManned){ ????????name?=?newName; ????????price?=?newPrice; ????????goods?=?newGoods; ????????manned?=?newManned; ????} ????public?void?show(){ ????????System.out.println?(?name?+?"?"?+?price?+?"元/天?"?+"載人:"??+?manned?+?"人"?+?"?載貨:"?+?goods?+?"噸"); ????} ????//沒用的 ????/*public?int?getGoods()?{ ????????return?goods; ????} ????public?int?getManned()?{ ????????return?manned; ????} ????public?void?setGoods(int?goods)?{ ????????this.goods?=?goods; ????} ????public?void?setManned(int?manned)?{ ????????this.manned?=?manned; ????}*/ }
這個abstract類到底怎么用,改來改去都不行,還有其他的地方有沒有什么錯誤哈,互相交流交流
2018-10-27
注意要體現(xiàn)程序的持續(xù)性,程序需要一直運行,不是說一個客人交易完后就結(jié)束了,還要讓程序繼續(xù)下去,這時候需要在main里面使用while(){},把代碼都寫進while()里。
2018-09-24
我的代碼 用到了abstract類和接口 供你參考
public interface IZaiRen {
?? void zaiRen();}
public interface IZaiHuo {
?? void zaiHuo();
}
public interface IDouZai extends IZaiHuo, IZaiRen {
}
public abstract class Car {
?? ?public int number;
??? public String carName;
??? public int price;
??? public String carType ;
?? ?
??? public abstract void print();
}
public class PersonCar extends Car implements IZaiRen {
?? public int capacityPerson;
?
? ?
?? public PersonCar(int number,String carName,int price,int capacityPerson) {
?? ??? this.number=number;
?? ??? this.carName=carName;
?? ??? this.price=price;
?? ??? this.capacityPerson=capacityPerson;
?? ??? carType = "PersonCar";
?? }
? ?
?? public void zaiRen() {
????? System.out.print("? 載人:"+capacityPerson+"人 ");
?? }
? ?
?? public void print() {
?? ??? System.out.print(number+".? "+carName+"? "+price+"元/天 ");
?? ??? this.zaiRen();
?? }
}
public class StuffCar extends Car implements IZaiHuo {
?? public int capacityStuff;
? ?
?? public StuffCar(int number,String carName,int price,int capacityStuff) {
?? ??? this.number=number;
?? ??? this.carName=carName;
?? ??? this.price=price;
?? ??? this.capacityStuff=capacityStuff;
?? ??? carType = "StuffCar";
?? }
? ?
?? public void zaiHuo() {
?? ??? System.out.print("? 載貨:"+capacityStuff+"噸 ");
?? }
? ?
?? public void print() {
?? ??? System.out.print(number+".? "+carName+"? "+price+"元/天 ");
?? ??? this.zaiHuo();;
?? }
}
public class PersonStuffCar extends Car implements IDouZai {
?? public int capacityPerson;
?? public int capacityStuff;
? ?
?? public PersonStuffCar(int number,String carName,int price,int capacityPerson,int capacityStuff) {
?? ??? this.number=number;
?? ??? this.carName=carName;
?? ??? this.price=price;
?? ??? this.capacityPerson=capacityPerson;
?? ??? this.capacityStuff=capacityStuff;
?? ??? carType = "PersonStuffCar";
?? }
? ?
?? public void zaiRen() {
?? ??? System.out.print("? 載人:"+capacityPerson+"人 ");
?? }
? ?
?? public void zaiHuo() {
?? ??? System.out.print("? 載貨:"+capacityStuff+"噸 ");
?? }
? ?
?? public void print() {
?? ??? System.out.print(number+".? "+carName+"? "+price+"元/天 ");
?? ??? this.zaiRen();
?? ??? this.zaiHuo();
?? }
}
import java.util.Scanner;
public class Test {
?? ?public static void main(String[] args) {
?? ??? ?System.out.println("歡迎使用答答租車系統(tǒng):");
?? ??? ?System.out.println("您是否要租車:1是 0否");
?? ??? ?Scanner scanner = new Scanner(System.in);
?? ??? ?int sellect = scanner.nextInt();
?? ??? ?if (sellect==0)
?? ??? ??? ?return;
?? ??? ?
?? ??? ?int totalPersonC = 0;
?? ??? ?int totalStuffC = 0;
?? ??? ?int totalPrice =? 0;
?? ??? ?int pCarNum=0;
?? ??? ?int sCarNum=0;
?? ??? ?
?? ??? ?System.out.println("您可租車的類型及其價目表:");
?? ??? ?System.out.println("序號? 汽車名稱????? 租金????????? 容量");
?? ??? ?Car cars[] =new Car[6];
?? ??? ?String pcars[]=new String[6];
?? ??? ?String scars[]=new String[6];
?? ??? ?
?? ??? ?cars[0]=new PersonCar(1,"奧迪A4",500,4);
?? ??? ?cars[1]=new PersonCar(2,"馬自達6",400,4);
?? ??? ?cars[2]=new PersonStuffCar(3,"皮卡雪??? ",450,4,2);
?? ??? ?cars[3]=new PersonCar(4,"金龍???? ",800,20);
?? ??? ?cars[4]=new StuffCar(5,"松花江?? ",400,4);
?? ??? ?cars[5]=new StuffCar(6,"依維柯?? ",1000,20);
?? ??? ?for(Car a : cars) {
?? ??? ??? ?a.print();
?? ??? ??? ?System.out.println("");
?? ??? ??? ?//System.out.print(a instanceof PersonCar);
?? ??? ??? ?//System.out.print(a instanceof StuffCar);
?? ??? ??? ?//System.out.print(a instanceof PersonStuffCar);
?? ??? ?}
?? ??? ?System.out.println("請輸入您要租汽車的數(shù)量");
?? ??? ?int num=scanner.nextInt();
?? ??? ?for (int i=1;i<=num;i++) {
?? ??? ??? ?System.out.println("請輸入第"+i+"量車的序號");
?? ??? ??? ?int n = scanner.nextInt();
?? ??? ??? ?totalPrice+=cars[n-1].price;
?? ??? ??? ?
?? ??? ??? ?switch (cars[n-1].carType) {
?? ??? ??? ?case "PersonCar":pCarNum+=1;
?? ??? ??? ??? ?pcars[pCarNum]=cars[n-1].carName;
?? ??? ??? ??? ?totalPersonC+=((PersonCar)cars[n-1]).capacityPerson;
?? ??? ??? ??? ?break;
?? ??? ??? ?case "StuffCar":sCarNum+=1;
?? ??? ??? ??? ?scars[sCarNum]=cars[n-1].carName;
?? ??? ??? ??? ?totalStuffC+=((StuffCar)cars[n-1]).capacityStuff;
?? ??? ??? ??? ?break;
?? ??? ??? ?case "PersonStuffCar":
?? ??? ??? ??? ?pCarNum+=1;
?? ??? ??? ??? ?pcars[pCarNum]=cars[n-1].carName;
?? ??? ??? ??? ?totalPersonC+=((PersonStuffCar)cars[n-1]).capacityPerson;
?? ??? ??? ??? ?sCarNum+=1;
?? ??? ??? ??? ?scars[sCarNum]=cars[n-1].carName;
?? ??? ??? ??? ?totalStuffC+=((PersonStuffCar)cars[n-1]).capacityStuff;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?System.out.println("請輸入租車天數(shù):");
?? ??? ?totalPrice*=scanner.nextInt();
?? ??? ?System.out.println("您的賬單:");
?? ??? ?System.out.println("***可載人的車有:");
?? ??? ?for (String s:pcars) {
?? ??? ??? ?if(s!=null)
?? ??? ??? ??? ?System.out.print(s+"? ");
?? ??? ?}
?? ??? ?System.out.println("共載人:"+totalPersonC+"人");
?? ??? ?
?? ??? ?System.out.println("***可載貨的車有:");
?? ??? ?for (String s:scars) {
?? ??? ??? ?if(s!=null)
?? ??? ??? ??? ?System.out.print(s+"? ");
?? ??? ?}
?? ??? ?System.out.println("共載貨:"+totalStuffC+"噸");
?? ??? ?
?? ??? ?System.out.println("***租車總價格:"+totalPrice+"元");
?? ??? ?
?? ?}
}